Jpa Query适用于Jetty Embedded,但在部署到Jetty时不会运行

时间:2014-04-24 05:45:19

标签: java jetty persistence openjpa

查询

em.createQuery("select bp from BlogPost bp WHERE ?1 MEMBER OF bp.categories")
                .setParameter(1, c)
                .getResultList();

在我的集成测试容器中,它运行正常,它位于我的代码中的自定义Jetty实例上。

使用gradle jettyRun或jettyRunWar部署时,它无法运行上面的查询,我得到一个空白结果集并出现以下错误。

  

4528简单警告[1241194115 @ qtp-739763767-0] openjpa.Runtime -   提供的用户参数“[1]”与预期参数“[]”不匹配   对于准备好的查询“PreparedQuery:[从BlogPost bp中选择bp   在哪里?1个成员bp.categories] - > [SELECT t0.id,t2.id,   t2.accessLevel,t3.id,t3.address1,t3.address2,t3.city,t3.country,   t3.homephone,t3.mobilephone,t3.postal,t3.province,t2.identifier,   t2.password_md5,t0.body,t0.dateCreated,t0.datePublished,t0.title   来自BlogPost t0 INNER JOIN BlogPost_BlogCategory t1 ON t0.id =   t1.BLOGPOST_ID LEFT OUTER JOIN用户t2 ON t0.author = t2.id LEFT OUTER   JOIN ContactInfo t3 ON t2.contact Info = t3.id WHERE(t1.CATEGORIES_ID   IS NULL)]“。

我可以只围绕它进行编码,但是MEMBER OF使它更简单,奇怪的是,根据它在Web容器中的部署方式,它的运行方式不同。

1 个答案:

答案 0 :(得分:0)

这是OpenJpa中的某种错误。

我想,我正在使用JPA,所以让我们只是切换到休眠状态,看看它是如何下降的,hibernate更严格一些,并迫使我对我的注释和类有点微不足道的改变。但20分钟后问题得到解决。不仅如此,隐藏的其他问题也得到了修复。

所以我想我会在这里打电话给Hibernate我的解决方案。如果有参数或配置或某些东西可能集体想要信息,但我的分辨率得到满足。