私は制御できないひどく正規化されていないデータベースからいくつかの値を読んでいます。コールは大学部門のアナウンスを取得し、ユーザーが複数の部門に所属する場合(可能な場合)、これらのユーザーに対して同じ結果が複数回返されます。しかし、いくつかの部門は異なるアナウンスを持つことがありますが、一部のアナウンスは異なる場合があります。個々の列のJPAでDISTINCTキーワードを使用する
個々の列の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の値は異なるかもしれませんが、発表、日付などはすべて同じです。このクエリは重複した値を持つアナウンスを返します。
偶然に使用しているJPAを知っていますか? – Bhushan
Hibernate 3.6.6とhibernate-jpa-2.0-api-1.0.1.Final.jar – acvcu