【发布时间】:2014-03-09 04:23:18
【问题描述】:
我想用 JPQL 为我在 Primefaces p:dataTable 中的输出生成一些数据。我使用以下查询。
Query query = this.em.createQuery("SELECT a FROM ProffesorTable a WHERE
a.fkProffesorID.name LIKE '"+buffervarQuery+"%' AND a.fkProffesorID.release='TRUE'
UNION
(SELECT a FROM ProffesorTable a WHERE a.fkProffesorID.name LIKE '%"+buffervarQuery+"'
AND a.fkProffesorID.release='TRUE') GROUP BY a.fkProffesorID.name ");
result = query.getResultList();
我收到以下异常
原因:java.lang.IllegalArgumentException:在 EntityManager 中创建查询时发生异常: 异常说明:编译时遇到内部问题
[从 ProffesorTable 中选择 a.fkProffesorID.name LIKE 'sie%' AND a.fkProffesorID.release='TRUE' 联盟
(从 ProffesorTable 中选择 a.fkProffesorID.name LIKE '%sie' AND a.fkProffesorID.name='TRUE')按 a.fkProffesorID.name 分组“)]。 [249, 277] 查询包含格式错误的结尾。 在 org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1585) 在 com.sun.enterprise.container.common.impl.EntityManagerWrapper.createQuery(EntityManagerWrapper.java:456)
【问题讨论】:
-
联合在 JPA 中不受支持。检查 [this answer][stackoverflow.com/questions/17050589/… 以获取替代解决方案。
-
感谢您的回答。这不好,我们没有使用 EclipseLink 为这个问题查询提供了替代解决方案。