DISTINCT关键字将从查询中删除

时间:2014-08-29 06:59:48

标签: java jpa distinct datanucleus

当使用DataNucleus(我使用的公司使用的软件)时,是否有人知道为什么DISTINCT关键字会从查询中删除?我能够调试代码并验证关键字实际上是在查询中。但是在JPAEntityManager中调用此函数时

createQuery(CriteriaQuery<T> criteriaQuery)

删除了DISTINCT关键字。调试显示它与

有关
criteria.getCompilation(ec.getMetaDataManager(), ec.getClassLoaderResolver());

函数调用。不知何故,createQuery()函数可以使用SELECT COUNT(DISTINCT DN_THIS),但不适用于SELECT DISTINCT FROM。

我希望你们中的一些人至少知道问题所在,因为我对JPA和SQL查询相当新,我自己找不到快速的解决方案。

我正在尝试执行的查询如下:

SELECT DISTINCT DN_THIS FROM Hop DN_THIS JOIN DN_THIS.tags t WHERE ((DN_THIS.entityStatus <> 'DELETED') AND ((t.name = :DN_PARAM_4) OR (t.name = :DN_PARAM_5))) ORDER BY DN_THIS.name ASC

谢谢!

1 个答案:

答案 0 :(得分:0)

我提示DataNucleus的开发人员,他似乎已经fixed the use of DISTINCT in criteria,但是根本没有被传递给生成的查询。