hibernate - 在 JBoss/WildFly 中注入(inject) EntityManager

标签 hibernate jakarta-ee jpa jboss wildfly

我正在学习 JPA、EJB 和 JBoss/WildFly。

我需要注入(inject) EntityManager进入我的应用程序。我试图通过以下方式做到这一点:

@Stateless
@LocalBean
public class ProductsService implements IProductsService {

    @PersistenceContext(unitName = "myUnit")
    EntityManager entityManager;

//....
}

我有 persistence.xml META-INF 中的文件我的 .war 中的目录文件:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
    <persistence-unit name="myUnit">
        <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source> 
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="create" />
            <property name="hibernate.show_sql" value="true"/>
        </properties>
    </persistence-unit>
</persistence>

JNDI 数据源 (java:jboss/datasources/ExampleDS) 是干净的 WildFly 安装中提供的默认数据源。

当我将应用程序部署到 WildFly 时,出现以下错误:
JBAS011440: Can't find a persistence unit named myUnit in deployment "my-web-app.war".

我究竟做错了什么?

最佳答案

persistence.xml总是驻留在 {root-of-persistence-unit}/META-INF/ directory .在 war 文件中,您必须放置 persistence.xmlWEB-INF/classes/META-INF .

例如:

WEB-INF/classes/META-INF/persistence.xml
WEB-INF/web.xml

查看更多:Persistence Units

关于hibernate - 在 JBoss/WildFly 中注入(inject) EntityManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28549026/

相关文章:

java - 只是获取 id 列值而不是在 hibernate 对象中使用 join 一对多关系

java.lang.AbstractMethodError : org. hibernate.ejb.criteria.CriteriaBuilderImpl.createCriteriaDelete()Ljavax/persistence/criteria/CriteriaDelete;

java - @PersistenceUnit 注释不会创建 EntityManageFactory emf=null

java - 刷新后 hibernate 不发出更新

hibernate - JPA 2.0 实现比较 : Hibernate 3. 5 vs EclipseLink 2 vs OpenJPA 2

java - 获取 Hibernate 异常 : org. hibernate.QueryException:无法解析属性

JSF2.0 注释@ManagedBean 不起作用

java - 多对一选择语句?

mysql - 如何在我自己的 Tomcat 服务器上部署 broadleaf demo?

java - Maven 项目中的每个模块都应该有自己的 Spring 应用程序上下文吗?