我正在从一个非常规范化的数据库中读取一些值(我无法控制).该调用检索大学部门的公告,如果用户在多个部门(可能),则对这些用户多次返回相同的结果.但是,有些部门可能会有不同的公告,而有些则有相同的公告.
有没有办法在单独的列上使用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 query = entityManager.createQuery(jpql,
Announcement.class);
query.setParameter("now", new Date());
query.setParameter("departmentIDs", departmentIDs);
departmentID值可能不同,但公告,日期等都是相同的.此查询返回具有重复值的公告.