2
我們有一個簡單的無狀態EJB計時器,它可以獲得注入Spring服務的實例。春季服務有一個標記爲交易的方法。當EJB使用事務管理類型CONTAINER時,spring服務調用會導致IllegalStateException:Operation不允許。因此,我們將EJB事務管理類型設置爲BEAN,並且一切都按照廣告方式工作。這是正常的嗎?我的印象是春季交易管理會加入CMT。Spring + EJB 3.1 CMT與BMT交易
例如EJB
@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
@Interceptors(SpringBeanAutowiringInterceptor.class
public class TimerService {
@Autowired
IHelloService helloService;
@Schedule(second="*/1", minute="*",hour="*", persistent=false)
public void doWork(){
helloService.hello();
}
}
例如春季服務
@Service
public class HelloService implements IHelloService {
@Transactional
public void hello(){
}
}
你使用哪個spring transaction manager?一般來說,我會在Spring或EJB中執行事務,而不是在兩個地方執行事務。 – 2013-12-29 11:44:57
這是一年半前回答的... – joekarl 2013-12-30 00:45:57