以下是示例代码。 sourceFileItemNo和entityDplStatus是一些值的数组。
Query query;
for(int i = 0 ;(sourceFileItemNo!=null && i< sourceFileItemNo.length); i++){
Object[] parameters = {entityDplStatus[i],"1",sourceFileItemNo[i]};
String queryString = "UPDATE GtcEntityDetailsValue c SET c.dplStatus=?1 where c.referenceNo=?2 and c.itemNo=?3";
query = manager.createQuery(queryString);
query = setQueryParameters(query, parameters);
query.executeUpdate();
}
在这种情况下,我们每次迭代都会更新细节。 JPA是否提供了将查询添加到列表或其他内容的规定,并且像旧连接语句执行批处理一样执行所有查询?
答案 0 :(得分:1)
是的,您可以使用hibernate轻松完成,使用您想要保留的更新值传递对象列表,然后执行:
private void updteRecord(List<Records> records){
int batchSize=10;
for(int i=0;i<records.size();i++)
{
getSession().saveOrUpdate(records.get(i));
if(i%batchSize==0)
{
getSession().flush();
getSession().clear();
}
}
}
您要为此方法提供的记录列表应包含您需要更新的值。