我正在将我的应用程序从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中使用(必须放入我不喜欢的所有类) 所有的警告和错误都消失了。
是否有其他方法可以解决此错误。
我正在尝试使用但尚未运气。
答案 0 :(得分:0)
此问题已解决。在TMS应用程序中,通过两种方式创建实体管理器:1.托管2.未托管
托管-在所有具有@PersistenceContext的EJB中 Unmanged-在测试案例中获得数据库连接。要在服务器启动时将静态表作为常量加载。
除非以持久性xml专门指定,否则以非管理方式创建实体管理器时,实体管理器不会加载实体。 (为此,我们的团队一直与Red Hat团队保持联系。他们提到此功能将在以后的版本中添加。)
我们通过与ModelConstants相同的托管实体管理器获取静态表值来解决了此问题。