【发布时间】:2010-12-17 14:41:28
【问题描述】:
我有“角色”类和“派系”类。一个角色有一个派系。一个派系可以被许多角色使用。当角色持续存在时,派系会持续存在。当没有更多角色引用该派系时,我想将其从数据库中删除。
当我有一对一的关系时,这很容易,因为我可以使用
@Persistent(dependent = "true")
在不再需要时将其删除。但这不再可能了,因为现在可能还有另一个角色仍然需要该派系。因此,如果我尝试删除 character1 并且他使用与 character2 相同的派系,我会收到以下异常:
java.sql.SQLIntegrityConstraintViolationException: DELETE on table 'FACTION' caused a violation of foreign key constraint 'CHARACTER_FK1' for key (1). The statement has been rolled back.
我只希望在不再需要该派系时删除该派系。我该怎么做?
【问题讨论】:
-
是否可以将 "Character" 保留为 "Fraction" 的成员?您将在“分数”中获得“字符”列表。因此,您可能知道“分数”何时不再包含“字符”,然后将其删除。据我所知,您还可以毫无问题地删除“字符”。
标签: java jdo datanucleus