我当前正在尝试访问MongoDB数据库中的对象。
我的对象以这种格式存储在db中:
{
"_id" : ObjectId("some object id"), // mongodb gives this id
"my_id" : "Given id by myself",
"url" : "Some string data"
}
Myobj类:
@Document(collection = "MYOBJ")
public class Myobj {
@Id
private ObjectId _id;
private String my_id;
private String url;
// getters and setters and other methods
}
我想使用my_id字段获取此对象。在我的存储库中,有这些:
public interface MyobjRepository extends MongoRepository<Myobj, String> {
Myobj findBy_id(ObjectId _id);
Myobj findByMy_id(String my_id);
}
但是它无法构建,它给了我这个错误:
没有找到Myobj类型的属性!您是说'url'吗?
我想my_id和_id之间不能区分开。如何在不更改数据库对象的情况下解决此问题?
没有findByMy_id方法,它正在工作。该方法会导致编译错误。
答案 0 :(得分:0)
问题是您在接口MyobjRepository
中将 String 设置为该模板MongoRepository<Myobj, String>
的ID,并且您需要将{em> ObjectId 设置为{{ 1}},因为您在MongoRepository<Myobj, ObjectId>
类中说过Myobj
将用ObjectId _id
我对吗?
答案 1 :(得分:0)
@Document(collection = "MYOBJ")
public class Myobj {
private ObjectId _id;
@Id
private String my_id;
private String url;
}
public interface MyobjRepository extends MongoRepository<Myobj, String> {
Myobj findBy_id(ObjectId _id);
Myobj findByMy_id(String my_id);
}