我正在使用Spring并使用TransactionInterceptor透明地获取Hibernate事务的程序。这使得非常方便的说“当这个方法从其他类中调用时,如果它不在一个事务中,则将它包装在事务中。”获取Spring类中的Hibernate事务
但是,我有一个类需要尝试写,并且必须立即找出它是否成功。尽管我想要两种方法,但我希望有一种方法可以让他们保持在同一个班级中,而不需要程序上明确地创建一个事务。实际上,我想是这样的:
public void methodOne() {
//..do some stuff
try {
transactionalMethod();//won't do what I want
} catch(OptimisticLockingFailure e) {
//..recover
}
}
@Transactional
public void transactionalMethod() {
//...do some stuff to database
}
不幸的是,我的理解是,这是行不通的,因为我只是直接调用transactionalMethod。有没有办法让Spring为我调用本地方法并在需要时将其包装在事务中,还是必须在另一个类中连接到此类?