将应用程序从eap5升级到eap7时出现Persistence.xml问题

时间:2018-04-23 14:52:03

标签: jboss-eap-7

我正在将我的应用程序从eap5升级到eap7。

部署.ear文件时出现问题 - persistence.xml文件无法读取实体类。

persistence.xml文件在.ear文件中的位置如下 .ear-> lib - > xxx.jar - > META-INF-> persistence.xml中

所有实体类都位于 .ear-> lib-> xxx.jar-> xdirectory-> xsubdirectory-> *类

警告:[org.hibernate.hql.internal.QuerySplitter](ServerService线程池 - 176)HHH000183:找不到查询类的持久化类:

我看到这些WARN,然后是ERROR 错误:错误[org.hibernate.internal.SessionFactoryImpl](ServerService线程池 - 176)HHH000177:命名查询出错:

我尝试将entity.class文件显式地放在persistence.xml中使用(必须放入我不喜欢的所有类) 所有的警告和错误都消失了。

是否有其他方法可以解决此错误。

我正在尝试使用但尚未运气。

1 个答案:

答案 0 :(得分:0)

此问题已解决。在TMS应用程序中,通过两种方式创建实体管理器:1.托管2.未托管

托管-在所有具有@PersistenceContext的EJB中 Unmanged-在测试案例中获得数据库连接。要在服务器启动时将静态表作为常量加载。

除非以持久性xml专门指定,否则以非管理方式创建实体管理器时,实体管理器不会加载实体。 (为此,我们的团队一直与Red Hat团队保持联系。他们提到此功能将在以后的版本中添加。)

我们通过与ModelConstants相同的托管实体管理器获取静态表值来解决了此问题。