【发布时间】:2012-03-03 02:51:50
【问题描述】:
我正在从一个非常未标准化(我无法控制)的数据库中读取一些值。该调用检索大学部门的通知,如果用户在多个部门(这是可能的),则为这些用户多次返回相同的结果。但是,有些部门可能有不同的公告,而有些则相同。
有没有办法让我在 JPA 中的各个列上使用 DISTINCT 关键字?这是我目前的查询:
String jpql = "SELECT DISTINCT annoucement FROM Announcment announcement "
+ "WHERE (announcement.date <= :now AND announcement.endDate >= :now) "
+ "AND announcement.approved = true AND announcement.departmentId IN (:departmentIDs)";
TypedQuery<Announcement> query = entityManager.createQuery(jpql,
Announcement.class);
query.setParameter("now", new Date());
query.setParameter("departmentIDs", departmentIDs);
departmentID 值可能不同,但公告、日期等都是相同的。此查询返回具有重复值的公告。
【问题讨论】:
-
你知道你使用的JPA是哪个版本吗?
-
Hibernate 3.6.6 和 hibernate-jpa-2.0-api-1.0.1.Final.jar
标签: java hibernate jpa jpa-2.0 jpql