我有一个与此类似的问题:
我想让Hibernate告诉我是否通过外键在数据库中的某个地方引用了一个实体。背景是:我想在我的应用程序中实现类似JIRA的行为:只删除用户,如果没有对它的引用,否则拒绝删除操作。
我知道可能存在性能问题,但首先,我只想知道这是否可行,或者您是否可以想出更好的方法来实现这一目标。
执行此操作的一种方法是调用delete并捕获以下异常,但我相信必须有更好或更优雅的方法来执行此操作?
问候, 克里斯
答案 0 :(得分:2)
Hibernate对MySQL的外键没有概念或意识。我能想到的一些选择是:
inverse=true
标记它们,以便Hibernate不会尝试使用该方来更新数据库)。然后,当您要删除用户时,请确保各种关系的.size()
属性为0.我相信这将是“典型的”Hibernate解决方案。