0

我使用 datanucleus 和 MongoDB 来存储我的对象。我检测到延迟加载的问题。

我班上的一个是:

    public class Member  implements Serializable{
            private static final long serialVersionUID = 1L;
            @PrimaryKey
            @Persistent(defaultFetchGroup = "true", valueStrategy = IdGeneratorStrategy.IDENTITY)
            private String key;

            private String username; 
            @Persistent(defaultFetchGroup="true",dependent="true")
            private Parameter param = null;
    }

检索此对象的代码是:

    Transaction tx = pm.currentTransaction();
    tx.begin();
    Member member = pm.getObjectById(Member.class,"MyID");
    tx.commit();
    //if I check here, the field "param" is null.

当我检查时,“参数”字段为空。但是,我将元数据设置为默认加载参数。也许驱动程序 MongoDB-JDO 不支持元数据“defaultFetchGroup”。

你能告诉我会发生什么吗?

非常感谢。

4

1 回答 1

1

“这里”(事务之外)的情况完全取决于对象生命周期以及您启用了哪些持久性选项。该链接定义了它。对象可能是空心的,因此字段已被卸载并且您没有设置“datanucleus.RetainValues”

于 2012-10-17T10:54:11.923 回答