Java Hibernate 5.0.3持久性在独立项目中运行良好,但在Glassfish 4.1部署的EAR中失败

Java Hibernate 5.0.3持久性在独立项目中运行良好,但在Glassfish 4.1部署的EAR中失败,java,hibernate,maven,jpa,glassfish,Java,Hibernate,Maven,Jpa,Glassfish,我有一个Maven企业项目,它由ear、web和ejb模块组成。EJB模块使用JPA持久性和Hibernate 5.0.3作为提供程序。我有一大堆JPQL查询,它们使用“SELECT NEW com.package.path.CustomerReportanotherEntityObject,COUNTanotherEntityObject.repList…”类型的语法。当我在Glassfish之外测试这些查询时,它们工作得很好。但是,当我将项目作为ear的一部分部署到Glassfish 4.1

我有一个Maven企业项目,它由ear、web和ejb模块组成。EJB模块使用JPA持久性和Hibernate 5.0.3作为提供程序。我有一大堆JPQL查询,它们使用“SELECT NEW com.package.path.CustomerReportanotherEntityObject,COUNTanotherEntityObject.repList…”类型的语法。当我在Glassfish之外测试这些查询时,它们工作得很好。但是,当我将项目作为ear的一部分部署到Glassfish 4.1应用程序服务器时,部署过程失败。Hibernate抱怨找不到匹配的构造函数“错误:无法在类上找到合适的构造函数…预期参数为:…”。建造师在那里;论点的顺序是正确的。毕竟,它在应用服务器之外没有任何问题

下面的一个线程建议在处理这些类型的查询时,将@SuppressWarning置于“未选中”状态,然后选择“新建…”。。。。这已经被先前的开发人员放在代码中了。当使用EclipseLink时,我没有这个问题。我认为这将与Hibernate一起工作,因为我使用的是标准JPA。一定有人有类似的问题。这一错误的原因可能是什么?Mavenmaybe生成项目的方式可能有问题吗?可能不包括@SuppressWarning?如果有人能为这个问题提供建议或解决办法,我将不胜感激

多谢各位

我考虑/研究过的事情:


我建议您分析完整的错误消息-需要哪些参数类型?在我看来,您正在使用的两种ORM以不同的方式将数据库类型映射到Java类型。Caffe,谢谢您的建议。我起初认为错误消息是这样的:错误:无法在类[com.package.path.CustomerReport]上找到合适的构造函数。预期参数为:com.package.path.AnotherEntityObject,long[cause=org.hibernate.PropertyNotFoundException:类中没有合适的构造函数:com.package.path.CustomerReport]CustomerReport的构造函数具有第二个参数类型long wrapper类。我把它改成了一个基本的long,尽管hibernate文档中说COUNT。。。总是很长。无论我使用Long还是Long,我仍然会得到相同的错误。这是Hibernate文档:你能检查一下Glassfish是否已经提供了Hibernate,可能是Hibernate版本不匹配吗?我仔细检查了模块文件夹。冬眠不在那里。Glassfish 4.1附带EclipseLink 2.1.6作为其默认JPA。