Java 在ejbql上使用DISTINCT

Java 在ejbql上使用DISTINCT,java,orm,jpa,jpql,Java,Orm,Jpa,Jpql,是否可以使用命名查询在EJB中使用类似PostgreSQL的DISTINCT ON o、 fromDate,o.EmployeeMasterId,o.employeeInfoId,o.leavePurposeId,o.toDate,o.createdByUserId,o.createDate,o.lastModifiedUserId,o.lastModifiedDate,o.isSystemRecord 上面描述的字段是我的EntityBean字段,我希望获得fromDate-wise dist

是否可以使用命名查询在EJB中使用类似PostgreSQL的DISTINCT ON

o、 fromDate,o.EmployeeMasterId,o.employeeInfoId,o.leavePurposeId,o.toDate,o.createdByUserId,o.createDate,o.lastModifiedUserId,o.lastModifiedDate,o.isSystemRecord

上面描述的字段是我的EntityBean字段,我希望获得fromDate-wise distinct记录


可以使用namedquery吗?

我看不出这是怎么可能的:JPQL提供了一种可以为任何数据库翻译成SQL的语言,这显然排除了特定于数据库的关键字

我的建议是使用GROUP BY和subqueries,如下所示:

DISTINCT ON子句不是SQL标准的一部分,由于其结果的潜在不确定性,有时被认为是不好的样式。明智地使用GROUPBY和子查询可以避免从构造中查询,但它通常是最方便的替代方法

或者,如果不考虑可移植性,则使用本机查询