hibernate中的flush

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 

相关推荐