4

私はユーザークラスを持っています:

 @Entity
 public class User implements Serializable {
 //..
 @ElementCollection(fetch = FetchType.EAGER)
 Set<UserPrivs> privs;
 //..
 }

UserPrivs - 列挙型。

List<User> getUsersByPrivs(Set<UserPrivs> privs)すべての特権を含むすべてのユーザーを返す メソッドを作成したいと思います。

どうすればこれを達成できますか?

4

3 に答える 3

1
Select u from User u join u.privs p where p.name in :privsNames

これはいずれかです。すべてを取得するには、u.privsにn回参加し、それらを一緒にANDする必要があります。

于 2012-11-12T15:04:08.233 に答える
0

これが役立つことを願っています:

    String query = "select u from User u where 0=1 ";
    for (UserPrivs p : privs) {
        query += " or '" + p.name() + "' in u.privs";
    }
于 2012-11-12T10:36:27.770 に答える