今、フィルターのような機能を実装しようとしています。User と Role の 2 つのモデルがあります。一方向の多対多の関係を使用しました。以下は私のコードです。
public class User {
...
@ManyToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinTable(name = "user_role", joinColumns = {@JoinColumn(name="user_id") },
inverseJoinColumns = { @JoinColumn(name = "role_id") })
private Set<Role> roles = new HashSet<Role>();
...
}
public class Role {
private String role;
...
}
ここで、多くのロールを持つユーザーを取得したいと考えていますが、ユーザーが選択されたロール コレクション内のユーザーのロールの 1 つだけを取得したいと考えています。HQL を使用してクエリを実行したいのですが、その方法がわからないので、「select * from user as u left join user_role as ur on u.id = ur.user_id where ur.role_id in (1,2)」を記述します。 . しかし、結果はユーザーのリストに変換できませんでした。そして、私はまだHQLを使用する必要があるので、誰でも助けてもらえますか. ありがとう。