62

DISTINCT は JPA でどの列を操作しますか? また、変更することは可能ですか?

DISTINCT を使用した JPA クエリの例を次に示します。

select DISTINCT c from Customer c

あまり意味がないのはどれですか - 異なる列はどの列に基づいていますか? エンティティが見つからなかったので、エンティティに注釈として指定されていますか?

次のように、区別する列を指定したいと思います。

select DISTINCT(c.name) c from Customer c

MySQL と Hibernate を使用しています。

4

6 に答える 6

72

あなたは近くにいます。

select DISTINCT(c.name) from Customer c
于 2012-10-24T13:58:10.930 に答える
13
@Entity
@NamedQuery(name = "Customer.listUniqueNames", 
            query = "SELECT DISTINCT c.name FROM Customer c")
public class Customer {
        ...

        private String name;

        public static List<String> listUniqueNames() {
             return = getEntityManager().createNamedQuery(
                   "Customer.listUniqueNames", String.class)
                   .getResultList();
        }
}
于 2012-08-28T22:44:58.687 に答える
12

更新:トップ投票の回答をご覧ください。

私自身は現在廃止されています。歴史的な理由からここにのみ保管されています。


HQL の Distinct は通常、独自のような単純な例ではなく、結合で必要です。

HQL で個別のクエリを作成する方法も参照してください。

于 2009-08-28T15:40:50.737 に答える
11

風鳴の答えに同意し、助けになりました。エンティティ全体を選択したかったので、使用しました

 select DISTINCT(c) from Customer c

私の場合、多対多の関係があり、コレクションを含むエンティティを 1 つのクエリで読み込みたいと考えています。

LEFT JOIN FETCH を使用し、最後に結果を明確にする必要がありました。

于 2016-10-19T15:45:14.473 に答える