我需要在标记为@Transactional的类的方法中手动维护事务。如果我现在尝试这样做,则抛出异常(很可能是因为事务被提交两次,一次由我提交,两次由包装器代理提交)。我需要做什么。
如果这不可能,那么有没有办法在成功提交事务时得到通知(数据库中的数据和所有内容),以便我调用另一个依赖于相同数据库的applciation?
答案 0 :(得分:1)
我希望您使用 spring 。如果是,那么你可以。
从API here中读取此代码块。在 10.5.6使用@Transactional
@Transactional(readOnly = true)
public class DefaultFooService implements FooService {
public Foo getFoo(String fooName) {
// do something
}
// these settings have precedence for this method
@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
public void updateFoo(Foo foo) {
// do something
}
}
答案 1 :(得分:0)
不,我不相信这是可能的。我相信如果你创建另一个线程并执行代码,它将在事务之外。要小心,因为当你创建额外的线程并自己管理它时,它会变得很冒险。