我有“角色”类和“派系”类。一个角色有一个派系。一个派系可以被许多角色使用。当角色保持不变时,派系就会保持不变。当没有更多角色引用该派系时,我想将其从数据库中删除。
当我有一个 1:1 的关系时,这很容易,因为我可以使用
@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.
我只希望在不再需要该派系时删除该派系。我怎样才能做到这一点?