Hibernate 自动扫描WAR文件中打包的多个LIB-jar文件中的JPA实体
我有一个使用JEE 7、JPA 2.1、Wildfly 10.1和Vaadin 8的多模块Maven web项目,我试图通过在WAR项目中使用核心应用程序组件并导入各种其他模块来保持模块化,例如核心模块(用户/角色管理等),其中包括:Hibernate 自动扫描WAR文件中打包的多个LIB-jar文件中的JPA实体,hibernate,jpa,jakarta-ee,vaadin,war,Hibernate,Jpa,Jakarta Ee,Vaadin,War,我有一个使用JEE 7、JPA 2.1、Wildfly 10.1和Vaadin 8的多模块Maven web项目,我试图通过在WAR项目中使用核心应用程序组件并导入各种其他模块来保持模块化,例如核心模块(用户/角色管理等),其中包括: 核心api(服务接口、JPA实体等) 核心服务(业务和持久性EJB) 核心ui(Vaadin ui组件,如@CDIView类、菜单生成器EJB) 因此,部署如下所示: core-web.war WEB-INF/ beans.xml(空) 类/(单个Vaa
- 核心api(服务接口、JPA实体等)
- 核心服务(业务和持久性EJB)
- 核心ui(Vaadin ui组件,如@CDIView类、菜单生成器EJB)
- core-web.war
- WEB-INF/
- beans.xml(空)
- 类/(单个Vaadin UI类,无其他)
- 解放党/
- persistence.jar(仅包含META-INF/persistence.xml的资源库)
- core-api.jar
- core-services.jar
- core-ui.jar
- (瓦丁罐和其他各种图书馆罐)
- WEB-INF/
元素
<persistence-unit name="my.persistence.unit" transaction-type="JTA">
<jta-data-source>java:jboss/datasources/ApplicationDS</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<jar-file></jar-file>
</persistence-unit>
java:jboss/datasources/ApplicationDS
假的
xml验证器在Eclipse中抱怨这一点,但当我部署到Wildfly时,它可以工作;我的实体被发现,并从数据库中检索出来
但是我只在一个地方看到过这个小把戏,并且找不到任何关于它的文档,所以当我不知道我们是否可能依赖Hibernate中的一个bug或者其他什么的时候,我犹豫着说“是的,我们解决了它”
有人知道这是否是解决该问题的有效方法吗?或者如果有其他修复方法,我应该试试
谢谢。您的每个模块中都有beans xml吗?我在基本war文件和两个EJB jar中有,而不是在包含API的普通jar中,包括实体类。尝试将beans.xml添加到API jar,但当用户是API jar文件中的JPA注释实体类时,仍然出现错误“User is not mapped”。如果我将空的
标记添加到persistence.xml,或者添加一个带有完全限定类名的
标记,它就可以工作。但是由于上面列出的原因,我不想这样做。也许你可以试试jboss部署结构.xml
@MorganP你现在找到了解决问题的方法了吗?另外,感谢使用空参数的解决方法。在找到其他方法之前,我将使用这种方法而不是属性。不,我从来没有这样做过。多伤心啊。我们仍然在项目的第一阶段使用EAR部署。几个月后,我们将开始下一个阶段,我将再次讨论这个问题。自从我发布了这个问题以来,我对Maven已经感到非常舒服了,所以也许我会找到一种很好的干净方法,基于包含的JAR动态地构建persistence.xml。