Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅使用@Transactional时,持久化单元未启动_Java_Jpa_Ejb_Jta_Java Ee 7 - Fatal编程技术网

Java 仅使用@Transactional时,持久化单元未启动

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

我使用的是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" 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体系结构的更多详细信息,请参阅。

是否还剩下使用它的内容?