循环保存在事务中为何只保存到最后一个对象

来源:互联网 发布:seo外包收费标准 编辑:程序博客网 时间:2024/05/21 03:17
有时候我们在使用事务保存一个循环中的对象时,可能会出现在提交事务后发现只保存到了最后一个对象,代码如下:                     
session = sf.openSession(); 
    transaction = session.beginTransaction(); 

    session.save(projectInfo); 
ProjectProduct projectPro = new ProjectProduct(); 
for (int i = 0; list != null && i < list.size(); i++) { 
........ 
session.save(projectPro); 

transaction.commit(); 
session.close(); 
在上面代码中,每一次循环都填充一个projectPro,使得在事务提交的时候,save的就是最后一个projectPro,前面的都已经不存在了,就没有保存到,解决方法是把ProjectProduct projectPro = new ProjectProduct()放到循环里面
0 0
原创粉丝点击