【发布时间】:2014-02-13 06:16:02
【问题描述】:
我有 2 个实体类(表 A 的 AEntity 和表 B 的 BEntity)。表 A 链接到表 B。所以 AEntity 类有一个 BEntity 的对象列表,并声明如下。
@OneToMany(mappedBy = "AEntity", cascade = CascadeType.REMOVE, fetch=FetchType.LAZY) 私有列表项 = new ArrayList();
如果我使用“entityManager.remove(aEntity)”删除 AEntity,这也会删除 B 表的 BEntity。
这对于少量数据是正确的。但如果数据增加,则会失败,并出现异常“Out of operation records in transaction coordinator (increase MaxNoOfConcurrentOperations)”。
发生此异常是因为它一次性删除了大量数据。 所以我想覆盖 BEntity 的删除/删除操作,并想使用分页来处理删除,也就是说,如果要删除总共 1 个缺少的行,我想在一个事务中删除 1000,然后再删除 1000。
我怎样才能做到这一点。 请帮忙
【问题讨论】:
-
能否在单个数据库请求中删除批量 B,例如 1000 个 B 实体的列表?如果是这样,那么我有一个解决方案。
标签: java jpa ejb-3.0 entitymanager