【发布时间】:2011-07-21 15:23:49
【问题描述】:
我想知道在 JDO 中是否可以进行以下操作。
我在父类和子类之间存在 1-N 关系。所以我的课看起来像
@PersistenceCapable
public class Parent {
@Persistent
private String name;
@Elements(mappedBy = "parent", dependent = "true")
private List<Children> children;
}
@PersistenceCapable
public class Child {
@Persistent
private String name;
@Persistent
private Parent parent;
}
级联删除工作正常。我可以删除一个父级,它的所有子级都将从数据存储中删除。
如果我查询特定子对象的数据存储并让该查询将其删除,则该子对象将从子对象表中删除,但其父对象的子对象列表将包含一个空条目。
我想这是一个相当愚蠢的问题,但有没有办法让 JDO 在删除孩子时更新父母的列表,还是我必须自己这样做?
感谢您的回复。
【问题讨论】:
-
提供使用的数据存储、JDO 实现、执行删除的实际持久性代码、日志条目的详细信息
-
DataNucleus Access Platform 2.2 和以下 jars asm-3.1.jar、db4o-7.12.126.14142-all-java5.jar、jdo-api-3.1-SNAPSHOT-20110223.jar、datanucleus.core- 2.2.3.jar、datanucleus-enhancer-2.1.3-jar、datanucleus-db4o.2.1.2.jar。所以我也在使用 DB4O。
-
字符串名称 = "名称";交易.开始();查询查询 = manager.newQuery(Child.class, "this.name == name"); query.declareParameters("java.lang.String name"); query.setUnique(true); query.deletePersistentAll(name); transaction.commit();
-
显然是一个特定于 db4o 的问题以及它如何与 DataNucleus 插件交互,并且该插件未维护...... db4o 被邀请对其进行更新,但到目前为止还没有做任何事情。
-
非常感谢。您会推荐哪个数据存储区?
标签: jdo db4o datanucleus