Hibnerate:增加和修改的时候需要操作2个表,这样写对吗?
Java code
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;
}
增加也是类似
只要有一个表修改错误,那么事务就回滚
------解决方案--------------------
是如此,如果你觉得这2个操作必须在一个事务里面完成的话,这样子写没有问题,如果可以分开完成的话,最好分开到2个事务中去
------解决方案--------------------
这样添加是可以的。但是你更新数据时必须要保证Class的ID属性不能为空,你说有一个更新错误,那需要去检查下映射文件
有一个检查的方法:
在hibernat.cfg.xml文件是配置show_sql属性,这样在执行时会输出SQL语句。你检查下输出的SQL语句是否正确。也可把输出的SQL语句拿到数据库去执行一下。那样就知道UPDATE语句是否正确了。
希望有帮助。。。
------解决方案--------------------
可以,不过先实践先,报错再来贴出来,这样都不用花100分啦,呵呵
------解决方案--------------------
1楼说法不对比如说一张是日志表,另一张是业务表,所有业务修改都要有写日志表,这是不可能是。
必需是 一个事业有同时成功操作要不就都不操作的要求必需一个事务。
1 你可能看一下你有没有表的修改权限;先用一下find能不能查询出来;如果能说明是操作权限问题
2 可以用2楼方法。
3 上网查一下写一个log4j.xml把这些信息都 打出来这样更全面。
希望你能把异常贴出来
------解决方案--------------------
------解决方案--------------------虽然没错,但业务逻辑应分开写