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

有时候我们在使用事务保存一个循环中的对象时,可能会出现在提交事务后发现只保存到了最后一个对象,代码如下:
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()放到循环里面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值