【发布时间】:2019-10-02 16:29:59
【问题描述】:
这是我使用的City 文档类。
@Document("city")
public class City {
@Id
private String id;
@Indexed(unique = true)
private String name;
@DBRef(lazy = true)
private District district;
public City() {
}
public City(String id) {
this.id = id;
}
public City(String id, String name, District district) {
this.id = id;
this.name = name;
this.district = district;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public District getDistrict() {
return district;
}
public void setDistrict(District district) {
this.district = district;
}
}
这是District 文档类
@Document("district")
public class District {
@Id
private String id;
@Indexed
private String name;
public District() {
}
public District(String id) {
this.id = id;
}
public District(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
这是district收集数据。
/* 1 */
{
"_id" : ObjectId("5d9482f3ff7ab743f0542070"),
"name" : "Ampara",
"_class" : "com.test.sample.model.District"
}
/* 2 */
{
"_id" : ObjectId("5d9482f3ff7ab743f0542071"),
"name" : "Anuradhapura",
"_class" : "com.test.sample.model.District"
}
这是city收集数据。
/* 1 */
{
"_id" : ObjectId("5d948333ff7ab743f0542089"),
"name" : "Polgampola",
"district" : {
"$ref" : "district",
"$id" : ObjectId("5d9482f3ff7ab743f0542070")
},
"_class" : "com.test.sample.model.City"
}
/* 2 */
{
"_id" : ObjectId("5d948333ff7ab743f054208a"),
"name" : "Porawagama",
"district" : {
"$ref" : "district",
"$id" : ObjectId("5d9482f3ff7ab743f0542070")
},
"_class" : "com.test.sample.model.City"
}
/* 3 */
{
"_id" : ObjectId("5d948333ff7ab743f054208b"),
"name" : "Akkaraipattu",
"district" : {
"$ref" : "district",
"$id" : ObjectId("5d9482f3ff7ab743f0542071")
},
"_class" : "com.test.sample.model.City"
}
这是上述城市文档类的存储库类
@Repository
public interface CityDao extends MongoRepository<City,String> {
List<City> findByDistrict(String id);
}
在城市类中,我使用了名为District 的引用文档类。这是另一个文件。我需要得到属于一个地区的城市。 findByDistrict(String id) 方法不返回值。它只是返回空的List。那么我该怎么做呢?
【问题讨论】:
-
您从哪里调用此存储库方法?你面临的具体问题是什么
-
此方法从 CityService 类调用。问题是我正在处理 District 的参考对象。那是@DbRef 对象。在存储库中,我编写了一个自定义方法来让城市属于地区。但没有数据出来。
-
把所有相关代码放在这里
-
@pvpkiran 我已经更新了问题。
-
检查这个问题和我的答案stackoverflow.com/questions/58165835/…
标签: mongodb spring-boot spring-data spring-data-mongodb