【发布时间】:2018-02-12 09:13:02
【问题描述】:
批量更新在本地系统上运行良好,但在测试服务器上执行需要数小时。尽管数据库使用不多且包含 150 000 条记录。
Session session=hibernateTemplate.getSessionFactory().openSession();
String sqlQuery = "FROM DemoDB";
List<DemoDB> demoList = session.createQuery(sqlQuery).list();
for (int j = 0; j < demoList.size(); j++) {
DemoDB demoObj = demoList.get(j);
if(emailFlagMap.containsKey(demoObj.getEmail()))
{
demoObj.setSendOutDone(emailFlagMap.get(demoObj.getEmail()));
}
session.update(demoObj);
if (j % 1000 == 0 && j > 0) {
session.flush();
session.clear();
}
}
session.flush();
session.clear();
session.close();
}
catch(Exception e)
{
logger.error("Exception occurred while getting response :"+e);
e.printStackTrace();
}
【问题讨论】:
标签: java hibernate bulkupdate