JPQL CONCAT函数是布尔值而不是字符串

时间:2019-03-26 17:22:53

标签: java sql jpa eclipselink jpql

我一直在寻找有关傻瓜问题的具体答案,但是我还没有找到真正有用的答案。这是问题:

在WebLogic Server版本12.2.1.2和12.2.1.3。上 在创建类似JPA应用程序的查询时

SELECT NEW model.ReturnType(a.id, a.name, CONCAT(a.name, a.id)) FROM EntityA a

引发以下异常:

  

异常描述:执行一个异常时抛出异常   带有构造函数表达式的ReportQuery:   java.lang.NoSuchMethodException:model.ReturnType。(java.lang.String,   java.lang.String,java.lang.Boolean)内部异常:   java.lang.NoSuchMethodException:model.ReturnType。(java.lang.String,   java.lang.String,java.lang.Boolean)查询:   ReportQuery(name =“ MyClassConcat” referenceClass = EntityA jpql =“ SELECT   来自EntityA的新model.ReturnType(a.id,a.name,CONCAT(a.name,a.id))   在“”处   org.eclipse.persistence.internal.jpa.QueryImpl.getDatabaseQueryInternal(QueryImpl.java:344)   在   org.eclipse.persistence.internal.jpa.EntityManagerImpl.createNamedQuery(EntityManagerImpl.java:1135)   在   org.eclipse.persistence.internal.jpa.EntityManagerImpl.createNamedQuery(EntityManagerImpl.java:1155)

CONCAT的返回类型应该为String,而不是布尔值。

知道为什么会这样吗?以及如何在查询中使用CONCAT,以便可以将其读取为字符串而不是布尔值?

谢谢!

1 个答案:

答案 0 :(得分:0)

发生这种情况是由于512386中报告了(已修复)错误。可以从diff中找到详细的原因。

由于bug早已修复,因此我认为有可用的补丁程序。如果不是这样,则必须回退以更新库或完全更改持久性提供程序。