关于EJB 3.0事务传播,我有以下基本问题。
这是我的场景:EJB服务 - > POJO - > EJB Dao。由于组织内部的一些限制,我需要坚持这种架构。
因此,在EJB Service Tx启动时,我指向一个返回本地EJB DAO的POJO。现在,在EJB DAO的方法中,我注入了持久化上下文和实体管理器,并且这些方法已经使用TransactionAttribute(必需)进行了注释。所以我的问题是,如果在DAO EJB中使用Service EJB的事务上下文,或者由于它们之间的POJO层,它会启动一个新的事务。
任何帮助都将不胜感激。
Thanks..Vijay
答案 0 :(得分:1)
由于事务是从“EJB服务”启动的,因此它将传播到“EJB DAO”。事务被设置为一种本地线程(至少在概念上,我不知道实现是如何做到的)。除非POJO在新创建的线程中运行DAO(对于手动创建的线程,不管怎样都不适合Java EE),否则它会做任何事情。