我正在读取一些来自非常不规范化的数据库中的值(这是我无法控制的)。此调用检索大学部门的公告,并且如果用户在多个部门中(这是可能的),则对于这些用户将多次返回相同的结果。但是,某些部门可能具有不同的通知,而某些部门可能具有相同的通知。
是否有办法在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);
部门ID的取值可能不同,但公告、日期等都是相同的。这个查询返回具有重复值的公告。