【问题标题】:Jpa Query Works on Jetty Embedded, but doesn't run when deployed to JettyJpa Query 在 Jetty Embedded 上工作,但在部署到 Jetty 时不运行
【发布时间】:2014-04-24 05:45:18
【问题描述】:

查询是

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 WHERE ?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 加入 ContactInfo t3 ON t2.contact Info = t3.id WHERE (t1.CATEGORIES_ID IS NULL)]"。

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

【问题讨论】:

    标签: java jetty persistence openjpa


    【解决方案1】:

    这是 OpenJpa 中的某种错误。

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

    所以我想我只是将 Hibernate 称为我的解决方案。如果有参数或配置或其他东西,可能集体想要信息,但我的解决方案得到满足。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 2016-02-29
      • 2014-07-05
      • 1970-01-01
      相关资源
      最近更新 更多