Java 事务管理
在我的代码中,我正在一个接一个地更新两个表 更新(表1_详情) 更新(表2_详情) 因此,如果表1中的更新失败,则不应更新或回滚表2 如何处理这种情况。我知道我必须使用事务处理。有人能帮我写代码吗!!!Java 事务管理,java,hibernate,spring,orm,Java,Hibernate,Spring,Orm,在我的代码中,我正在一个接一个地更新两个表 更新(表1_详情) 更新(表2_详情) 因此,如果表1中的更新失败,则不应更新或回滚表2 如何处理这种情况。我知道我必须使用事务处理。有人能帮我写代码吗!!! 我将Java与spring和hibernate一起使用。我想不起正确的api,但类似于以下内容: Transaction tx = em.getTransaction(); tx.begin(); try { update1(); update2();
我将Java与spring和hibernate一起使用。我想不起正确的api,但类似于以下内容:
Transaction tx = em.getTransaction();
tx.begin();
try {
update1(); update2();
}
catch(Exception e) {
failed = true
}
finally {
if( !failed ) tx.commit();
else tx.rollbacl();
}
@Transactional
public void doSomething() {
dao1.foo();
dao2.bar();
}
问题有点广泛,有几种方法可以实现这一点,但我会:
- 使用Spring将Hibernate
注入DAOs对象SessionFactory
- 使用Spring在服务对象中注入DAO,并在业务方法中调用它们
- 在业务方法级别使用Spring声明性事务管理(使用Spring AOP或
)李>@Transactional
Transaction tx = em.getTransaction();
tx.begin();
try {
update1(); update2();
}
catch(Exception e) {
failed = true
}
finally {
if( !failed ) tx.commit();
else tx.rollbacl();
}
@Transactional
public void doSomething() {
dao1.foo();
dao2.bar();
}
有关配置的更多详细信息,请查看Spring文档的。问题出在哪里?你不能阅读在线文档吗?例如:(谷歌在“spring hibernate transaction”搜索中的第一个答案)!