1 回答

TA貢獻1946條經(jīng)驗 獲得超3個贊
您可能可以為此使用裝飾器模式。實現(xiàn)您自己的PlatformTransactionManager并將您當前的經(jīng)理作為委托傳遞給它。在 中g(shù)etTransaction,如果當前線程不是您所期望的,則拋出異常。
public class MyTransactionManager implements PlatformTransactionManager {
private final PlatformTransactionManager delegate;
public MyTransactionManager(PlatformTransactionManager delegate) {
this.delegate = delegate;
}
@Override
public void commit(TransactionStatus status) {
delegate.commit(status);
}
@Override
public TransactionStatus getTransaction(TransactionDefinition definition) {
if (Thread.getCurrentThread() == /*something*/) {
return delegate.getTransaction(definition);
}
else {
throw new RuntimeException();
}
}
@Override
public void rollback(TransactionStatus status) {
delegate.rollback(status);
}
}
添加回答
舉報