對於單一table可以:
session.beginTransaction()如果是pojo中的set集合則
session.delete(pojo)
//沒有evict
session.flush()
session.save(userInputPojo)
session.commitTransaction()
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()
注意事項
- session.flush()要放在removeAll之前(不知道為什麼)
- 單一table不能evict(不知道為什麼)
- set裡要evict(不知道為什麼)
- 要remove pojo.set裡被delete的pojo
沒有留言 :
張貼留言