public boolean update(Class a,Class b) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
session.update(a);
session.update(b);
tx.commit();
return true;
} catch (RuntimeException re) {
tx.rollback();
log.error("==CardinfoServices update failed ==", re);
} finally {
session.close();
}
return false;
}增加也是类似只要有一个表修改错误,那么事务就回滚

解决方案 »

  1.   

    这样添加是可以的。但是你更新数据时必须要保证Class的ID属性不能为空,你说有一个更新错误,那需要去检查下映射文件
    有一个检查的方法:
    在hibernat.cfg.xml文件是配置show_sql属性,这样在执行时会输出SQL语句。你检查下输出的SQL语句是否正确。也可把输出的SQL语句拿到数据库去执行一下。那样就知道UPDATE语句是否正确了。
    希望有帮助
      

  2.   

    1楼说法不对比如说一张是日志表,另一张是业务表,所有业务修改都要有写日志表,这是不可能是。
    必需是 一个事业有同时成功操作要不就都不操作的要求必需一个事务。1 你可能看一下你有没有表的修改权限;先用一下find能不能查询出来;如果能说明是操作权限问题
    2 可以用2楼方法。
    3 上网查一下写一个log4j.xml把这些信息都 打出来这样更全面。
    希望你能把异常贴出来