【发布时间】:2015-11-19 09:05:17
【问题描述】:
我可以通过 DBRef 获取字段吗? 我必须将集合映射到:
@PersistenceCapable(table = "group")
public class MyGroup
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY, column = "_id")
private String id;
private String name;
private Person person;
// getters/setters
...
}
@PersistenceCapable(table = "people")
public class Person
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY, column = "_id")
private String id;
private String firstName;
private String lastName;
// getters/setters
...
}
我想获取人名(目前我的人为空):
MyGroup myGroup = persistenceManager.getObjectById(MyGroup.class, "5230a918ac8c95fd3d9a3dfa")
myGroup.getPerson().getFirstName();
并执行查询:
Query query = persistenceManager.newQuery(MyGroup.class);
query.setFilter("persone.firstName == \"Tester\"");
【问题讨论】:
-
首先,引用了无效的 JDOQL。其次,您是否尝试过(使用有效的 JDOQL)?
-
@NeilStockton 不,因为我得到 person = null。
-
那么为什么不首先使用您尝试过的有效 JDOQL 更新您的问题,然后将它调用的 MongoDB 查询放入(在日志中)
-
@NeilStockton 问题不是查询。如果我只是通过 Id 获取对象,我的 person 字段为空。我希望得到 Person 对象。
-
如果问题不是查询,则将其从问题中删除并放入 getObjectById 和结果,然后查看日志并查看它是否在数据库中,并查看发出的 MongoDB 查询检索它。
标签: mongodb orm datanucleus