JPA 管理依赖项的方式让我抓狂。如果我有一个实体 Parent 并且我希望在删除 Parent 时清理另一个实体 Child ,那么似乎我必须有一个硬编码的依赖关系。这对我如何布局我的包裹造成了严重破坏。
例如,假设我有一个名为 User 的实体。稍后,我想添加 Facebook 功能。所以我想为用户添加 Facebook 令牌和 id。我创建了一个 Facebook 包来包含我所有的 Facebook 特定插件代码。我的 FacebookInfo 实体包含用户实体引用。但现在我有一个问题。我想在删除用户时删除 FacebookInfo 记录。这迫使我向创建双向关系的用户添加 FacebookInfo 引用。和 BAM,现在我的“用户”和“脸书”包之间有一个循环。除了支持级联删除之外,我不需要用户中的 FacebookInfo。理想情况下,我希望 FacebookInfo 实体类指定它要在用户被删除时被删除。然后所有依赖项都以一种方式进行。
大多数人在使用 JPA 时是否会强调包中的循环依赖关系,或者是否有一种体面的方法来避免这种情况?如果有一种特定于休眠的方法来处理这个问题(不使用 XML),我也可以这样做。谢谢。