我现在有一个事务处理
在这个事务里需要保存A,B两张表的值,查询C,并且更新D,如果有一张不成功就全部会滚
public String saveMoveContPlan(MoveContPlan mcp,List<MoveContPlanDetail> list) {
BaseHibernateDAO moveContPlanDao = new BaseHibernateDAO("MoveContPlan");
Session s = moveContPlanDao.getSession();
Transaction tx = s.beginTransaction();
mcp.setAAA("xxx");
...
moveContPlanDao.save(mcp);
然后在后面需要把list的值保存到MoveContPlanDetail这个表中,而在执行moveContPlanDao.save();for (int i = 0; i < list.size(); i++) {
MoveContPlanDetail m = (MoveContPlanDetail) list.get(i);
List flist = moveContPlanDao.findByHql("from Zgxxxb where containerNo='"+ m.getId().getContainerNo() + "'");
if (list == null) {
continue;
}
Zgxxxb zgxxb = (Zgxxxb) flist.get(0);
m.setRealContDistrict(zgxxb.getContainerAreas());
m.setRealContPos(zgxxb.getContainerPosition());
// 更新另外一张表
moveContPlanDao.UpdateByHQL("update CfsContainerPos set posState='P' where containerPosNo='"+m.getPlanContPo()+"'");
moveContPlanDao.save(m);
tx.commit();在循环中执行插入的时候就会抛出Session is closed,应该是在第一次执行save的时候session就被关闭了,请教大虾们有什么办法解决?在不改动配置文件的情况下。
在这个事务里需要保存A,B两张表的值,查询C,并且更新D,如果有一张不成功就全部会滚
public String saveMoveContPlan(MoveContPlan mcp,List<MoveContPlanDetail> list) {
BaseHibernateDAO moveContPlanDao = new BaseHibernateDAO("MoveContPlan");
Session s = moveContPlanDao.getSession();
Transaction tx = s.beginTransaction();
mcp.setAAA("xxx");
...
moveContPlanDao.save(mcp);
然后在后面需要把list的值保存到MoveContPlanDetail这个表中,而在执行moveContPlanDao.save();for (int i = 0; i < list.size(); i++) {
MoveContPlanDetail m = (MoveContPlanDetail) list.get(i);
List flist = moveContPlanDao.findByHql("from Zgxxxb where containerNo='"+ m.getId().getContainerNo() + "'");
if (list == null) {
continue;
}
Zgxxxb zgxxb = (Zgxxxb) flist.get(0);
m.setRealContDistrict(zgxxb.getContainerAreas());
m.setRealContPos(zgxxb.getContainerPosition());
// 更新另外一张表
moveContPlanDao.UpdateByHQL("update CfsContainerPos set posState='P' where containerPosNo='"+m.getPlanContPo()+"'");
moveContPlanDao.save(m);
tx.commit();在循环中执行插入的时候就会抛出Session is closed,应该是在第一次执行save的时候session就被关闭了,请教大虾们有什么办法解决?在不改动配置文件的情况下。
解决方案 »
- onclick 跳转 双击表格任一行,获取该行所有列的值 并且怎么把值传递给frameset设定的另外一个frame
- Spring从入门到精通(珍藏版) 分享+求书
- apache james 服务配置详情 <急需!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
- hibernate问题
- 大家给建议,如何学struts
- Spring 简单问题
- xwork.xml由webwork里面的那段代码装载进去的?
- J2EE如何入门?
- 关系one to many一方不能有key fields,这是什么意思?
- 怎么在jsp页面实现文件上传呢
- hibernate的复合主键类 使用hql更新
- 求助:可能需要用递归可是我不会
session.createQuery(hql).executeUpdate();
//session.sava or update or delete
...
session.close();