遇到的第一个问题:
页面保存数据的时候总是报主键列重复的问题
问题解决的过程和思路:
我们在service层使用了事物:
Service
Transacation
Dao
我在这个位置使用循环execute操作了多个对象
endDao
endTransacation //这里报错
endService
总结:
因为dao层执行execute方法的时候 被事物所包裹,所以它会将这个对象先放到session级别的缓存。
我execute了两次 它就存了两个对象。 这两个对象的主键列一样.
这样 在提交事务的时候: 两个对象的主键列是一样的。 所以就报了主键重复的错误.
解决方案:
在execute完一次后调用flush方法. 这个方法将会把session级别的缓存对象保存到数据库. 下次再操作同一个对象就不会报错了。