我第一次将 JDO(使用 Datanucleus 实现)用于一个新项目,并且在使用 JDO 注释定义 1-N 单向拥有关系时遇到了麻烦。我需要的是在 a 中有一个集合Subitems
,Item
这样 aSubitem
就没有对所有者的引用:
@PersistenceCapable(detachable = "true")
public class Item {
...
@Persistent(defaultFetchGroup = "true")
Collection<Subitem> subitems;
...
}
一切都很好,但是我如何定义关系映射到哪个现有的 RDBMS 列?AFAIK 通过在子表中创建不可为空的表列在数据库中实现拥有的 1-N,但我没有(也不想要)父引用类字段,Subitem
然后我可以用@Column(name="...")
注释装饰.
以及如何@ForeignKey
在 JDO3 中正确使用注解?注释接受 FK 约束的名称,但不接受相应的 FK 表和列规范。根据定义,FK 是参考。基于公共键的两个表之间的约束,但我似乎无法指定另一个表和一个公共键(@ForeginKey at Datanucleus JDO docs)。
编辑:
@Element(column="...")
应该使用注释:
@PersistenceCapable(detachable = "true")
public class Item {
...
@Persistent(defaultFetchGroup = "true")
@Element(column="itemId")
Collection<Subitem> subitems;
...
}
正如答案中的文档链接中明确指出的那样。