我自己写了个事务 但是 为什么主表保存成功 从表失败了 但是 为什么事务不会滚啊 配置文件 也没问题 ???急急急

xchen1986 2010-01-20 09:49:31
下面是代码
Session session = this.getSessionFactory().openSession();
session.connection().setAutoCommit(false);
Transaction tx = session.beginTransaction();
Date date = new Date();
catalogApply.setApplyTime(date);
catalogApply.setOrgNo(propCode.getHospitalCode());
catalogApply.setOrgName(propCode.getHospitalName());
catalogApply.setApplyNo(StringUtil.getOrderCode("3"));
debug.debugObject(catalogApply.getCatalogApplyItems());
try {

for (int i = 0; i < catalogApply.getCatalogApplyItems()
.size(); i++) {
CatalogApplyItem item = (CatalogApplyItem) catalogApply
.getCatalogApplyItems().toArray()[i];
if (item.getCatalogNo().equals("")) {
// item.setCatalogId(Long.valueOf(null));
}
item.setItemId(null);
item.setTimeStamp(date);
item.setCatalogApply(catalogApply);
// commonDao.save(item);
}
commonDao.save(catalogApply);
tx.commit();
session.close();
return "1";
} catch (Exception e) {
// TODO: handle exception
exceptionLoger.saveLogInfo(e);
tx.rollback();
session.close();
return "0";
...全文
169 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xchen1986 2010-01-21
  • 打赏
  • 举报
回复
我用session。save()是可以保存数据 如果子表失败的话 就是都回滚了
如果换回commonDao.save() 又不能回滚事务 所以 确实是开启了不同的session 所导致的问题
Johnson_Hong 2010-01-21
  • 打赏
  • 举报
回复
你新打开了一个session,然后开启事务。

但是dao里的session与这个session不是同一个

把你的dao怎么获取session的代码贴出来,应该就是这个原因
spring_cj 2010-01-21
  • 打赏
  • 举报
回复
catch (Exception e)确定捕获到错误了吗?
zm_hs 2010-01-21
  • 打赏
  • 举报
回复
用了事务不会回滚,你是不是用的同一个session哦
蛋黄车 2010-01-21
  • 打赏
  • 举报
回复
Hibernate里用DAO层的方法经常出现这样的问题。Hibernate中的事务提交默认是手动提交。

可以尝试不用DAO层,而是在service里面自己写方法。设置事务提交的时机

如果非用DAO层的话,可以在DAO层里面自己写这种较复杂的逻辑方法。在service中直接调用一下就OK了。

我也遇到过LZ这种问题,最后是自己写的方法,而不是在service中调用DAO层中默认的方法。
xchen1986 2010-01-20
  • 打赏
  • 举报
回复
在控制台里 有个保存子表的语句
hbm文件 里写了个这个
<set name="catalogApplyItems" inverse="true" lazy="false" cascade="save-update">
<key>
<column name="APPLY_ID" precision="18" scale="0" not-null="true" />
</key>
<one-to-many class="com.sino.module.dmc.catalogApply.entity.CatalogApplyItem" />
</set>
道光2008 2010-01-20
  • 打赏
  • 举报
回复
映射文件建立级联关系没有啊,

看看控制台上打印的sql有无保存子表的操作

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧