Я читаю некоторые значения из базы данных, которая ужасно не нормализована (которую я не могу контролировать). Вызов извлекает объявления для факультетов университета, и если пользователь находится в нескольких факультетах (что возможно), то одни и те же результаты возвращаются для этих пользователей несколько раз. Однако в некоторых отделах могут быть разные объявления, а в некоторых одинаковые.
Есть ли способ использовать ключевое слово DISTINCT в JPA для отдельных столбцов? Это то, что у меня сейчас есть для запроса:
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 может быть другим, но объявление, даты и т. д. идентичны. Этот запрос возвращает объявления с повторяющимися значениями.