【发布时间】:2013-05-29 08:28:00
【问题描述】:
hibernateTemplate flush() 和 clear() 方法有什么区别?什么时候用?
我有以下代码
public void saveAllReportRoomRes(List<ReportRoomRes> reportRoomResList) throws DataAccessException {
hibernateTemplate.saveOrUpdateAll(reportRoomResList);
hibernateTemplate.flush();
}
我在循环中调用此方法,每次传递记录列表(总记录可以超过 2 个 lacs)。因为我的代码在事务中,有时在后续迭代中,如果休眠找到相同的主键(我有复合主键)对象,它会抛出 NonUniqueObject 异常。但实际上它需要更新之前插入的记录。
如果我使用 HibernateTemplate.clear(),它可以工作。
这也是保存或更新大量记录的好方法吗?因为这是我通常的情况,我以一定的间隔将数据从一个数据库复制到另一个数据库。
【问题讨论】: