hibernate按照insert,update,----- delete的顺序提交所有登记的操作。
例子:
Cat cat = new Cat();
cat.setName(“tom”);
s.save(cat);
cat.setName(“mary”);
s.update(cat);
Cat littleCat = new Cat();
littleCat.setName(“tom”);
s.save(littleCat);
s.flush();
会报主键冲突,
s.save(littleCat);将在
s.update(cat);之前执行,所有的save都将在update之前执行,这就造成了主键冲突的发生
解决方法:
在s.update(cat); 加入s.flush();
强制session在保存littleCat之前更新name