我有一个 JPA 多对多关系。
删除此关系的所有条目的最简单方法是执行 findAll()
,清除关联集合并刷新 session 。
在我的例子中,这意味着将 ~1'000'000 个实例加载到 ram 中只是为了将它们全部删除。这并不是真正有效。
我可以求助于 SQL 并简单地截断连接表。在 JPA 中是否有有效的方法来做到这一点?
最佳答案
您需要将 m-m 表映射为附加实体,并使用 delete statement 删除它。 。如果表未映射到实体,则无法通过删除语句删除它。如果你只是想删除m-m关系,这应该足够了。如果您还想删除相关实体,则应该将它们映射到新的 m-m 实体,并在删除时使用级联标记关系。
关于java - 如何在JPA中有效地截断多对多表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32330413/