如何在JPA中有效地截断多对多表?

时间:2015-09-01 11:26:31

标签: java hibernate jpa

我有很多关系的JPA。

删除此关系的所有条目的最简单方法是执行findAll(),清除assoziation的集合并刷新会话。

在我的情况下,这意味着将〜1' 000' 000个实例加载到ram中只是为了删除它们。这不是很有效。

我可以使用SQL并简单地截断连接表。在JPA中有一种有效的方法吗?

1 个答案:

答案 0 :(得分:1)

您需要将m-m表映射为其他实体,并使用delete statement将其删除。如果表未映射到实体,则不能通过delete语句删除它。如果你只想删除m-m关系,这应该就足够了。如果您还要删除相关实体,则应将它们映射到新的m-m实体,并在删除时用cascade标记关系。