Java 仅使用@Transactional时,持久化单元未启动
我使用的是Wildfly 10.1.0,我试图将所有EJB更改为只使用Java 仅使用@Transactional时,持久化单元未启动,java,jpa,ejb,jta,java-ee-7,Java,Jpa,Ejb,Jta,Java Ee 7,我使用的是Wildfly 10.1.0,我试图将所有EJB更改为只使用@事务性注释,这些注释是从Jave EE 7开始提供的(因为JTA 1.2)。问题是,当我的项目有0个EJB时,容器不会启动PersistenceUnit。如果我添加了一个只有注释@Stateless的空类,那么它会再次工作 这是我的persistence.xml <persistence version="2.1"> <persistence-unit name="Storage-PU" transac
@事务性注释,这些注释是从Jave EE 7开始提供的(因为JTA 1.2)。问题是,当我的项目有0个EJB时,容器不会启动PersistenceUnit。如果我添加了一个只有注释@Stateless
的空类,那么它会再次工作
这是我的persistence.xml
<persistence version="2.1">
<persistence-unit name="Storage-PU" transaction-type="JTA">
<jta-data-source>java:/PostGreDS</jta-data-source>
<class>SomeEntity<class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
</persistence-unit>
</persistence>
java:/PostGreDS
某物
假的
当没有可用的EJB时,PersistenceUnit没有启动的原因是什么
当没有可用的EJB时,PersistenceUnit没有启动的原因是什么
原因是在JEE应用程序中,持久性上下文(包括DB连接、持久性单元和其他内容)由EJB容器启动和管理:
因此,仅仅在Web层用@Transactional
注释bean方法不足以启动持久性上下文。请注意,事务也由EJB容器管理,而不是由Web容器管理
有关JEE体系结构的更多详细信息,请参阅。是否还剩下使用它的内容?