2014-04-24 66 views
0

查詢是JPA查詢工作在碼頭嵌入式,但不運行時部署到碼頭

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

在我的綜合測試容器運行良好,這是一個自定義碼頭比如我有我的代碼。

但是,當使用gradle jettyRun或jettyRunWar進行部署時,它無法運行上面的查詢,我得到一個空白結果集並出現以下錯誤。

4528簡單WARN [1241194115 @ QTP-739763767-0] openjpa.Runtime - 提供用戶參數 「[1]」 不符合預期的參數 「[]」 爲準備查詢「PreparedQuery:選擇bp from BlogPost bp where?1 MEMBER OF bp.categories] - > [SELECT t0.id,t2.id, t2.accessLevel,t3.id,t3.address1,t3.address2,t3.city,t3。國家, t3.homephone,t3.mobilephone,t3.postal,t3.province,t2.identifier, t2.password_md5,t0.body,t0.dateCreated,t0.datePublished,t0.title FROM BlogPost t0 INNER JOIN BlogPost_BlogCategory t1 ON t0.id = t1.BLOGPOST_ID LEFT OUTER JOIN U ser t2 ON t0.author = t2.id LEFT OUTER JOIN ContactInfo t3 ON t2.contact Info = t3.id WHERE(t1.CATEGORIES_ID IS NULL)]「。

我可以只圍繞它的代碼,但成員使它簡單了很多,這是奇怪的是,這取決於它如何部署在Web容器中運行不同。

回答

0

這是OpenJpa中的某種錯誤。

我想,我使用的是JPA,所以讓我們切換到休眠狀態,看看它是如何下降,休眠是更嚴格,迫使我微不足道的改變我的註釋和類有點。但20分鐘後問題解決了。不僅如此,其他隱藏的問題也得到了解決。

所以我想我只是打電話給休眠我的解決方案在這裏。如果有一個參數或配置或某事可能集體想要的信息,但我的決議是滿足。