Google Prettify

2006-01-20

用Hibernate做批次刪除與新增

Hibernate做批次刪除與新增
對於單一table可以:
session.beginTransaction()
session.delete(pojo)
//沒有evict
session.flush()
session.save(userInputPojo)
session.commitTransaction()
如果是pojo中的set集合則
session.beginTransaction()
pojo=session.get()
Collection deleteTmp=new ArrayList();
for(element:pojo.set){
if(availableForDelete(element)){
session.delete(element);
session.evict(element);
deleteTmp.add(element);
}
}
session.flush();
pojo.set.removeAll(deleteTmp);
for(userInputPojo:userInputPojos){
session.save(userInputPojo)
}
session.commitTransaction()


注意事項
  1. session.flush()要放在removeAll之前(不知道為什麼)
  2. 單一table不能evict(不知道為什麼)
  3. set裡要evict(不知道為什麼)
  4. remove pojo.set裡被deletepojo

沒有留言 :

您或許對這些有興趣

Related Posts with Thumbnails

最後

謝謝您的閱讀,希望您可以有豐富的收獲。