【发布时间】:2018-10-10 15:34:55
【问题描述】:
我对更新多个实体的功能有一些疑问,但它会一一进行。当然,如果我们使用远程数据库,可能会出现延迟问题,但除此之外,我担心我们会得到 OutOfMemoryException,因为我们在单个事务中更新的实体数量。我的代码类似于下面的代码。
EntityHeader entityHeader = entityHeaderService.findById(id);
for(EntityDetail entityDetail : entityHeader.getDetails()) {
for(Entity entity : entityDetail.getEntities()) {
entity.setState(true);
entityService.update(entity);
}
}
这是一个例子,我们在另一种方法中也有类似的情况,但是用插入代替。这些方法可以在一个事务中更新或插入多达 2k 或 3k 个实体。所以我的问题是,我们应该开始使用批处理操作还是实体数量不够大而不必担心呢?另外,如果用批处理来做会不会更好?
【问题讨论】:
标签: java sql-server hibernate