我的域模型中有一个无主的关系
@Entity
public class A {
@Id
private String id;
private Key firstB;
private Key secondB;
// getters & setters
}
@Entity
public class B {
@Id
private Key id;
private String name;
// getter & setter
}
KeyFactory.createKey(B.class.getSimpleName(), name)
是我为B类生成密钥的方式
我独立于A保存B并将其分配给A的实例一段时间。问题是在保存A后,两个字段 firstB 和 firstA 都为空。
知道我做错了什么?
答案 0 :(得分:1)
Key
个对象默认不会保留,因此需要显式注释,这就是您看到null
值的原因。
尝试将firstB
和secondB
注释为@Enumerated
(这应该是@Basic
但是there is a bug which prevents this from working):
@Entity
public class A {
@Id
private String id;
@Enumerated
private Key firstB;
@Enumerated
private Key secondB;
}
更新:最新的SDK和DataNucleus JAR现在可以正确使用@Basic。