【问题标题】:Datanucleus mongodb referencesDatanucleus mongodb 参考资料
【发布时间】: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


【解决方案1】:

DataNucleus 不支持 MongoDB 数据存储上的 DBRef: http://www.datanucleus.org/servlet/forum/viewthread_thread,7924#38188

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多