![](/img/trans.png)
[英]Hibernate - HQL to fetch a collection from Unidirectional OneToMany relationship
[英]how to write hql query for hibernate OneToMany relationship?
我的班級安排如下:
class User {
@Id
private long id;
@OneToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
Set<UserRole> userRoles;
}
class UserRole {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
private int id;
@Column(name = "role", nullable = false, length = 45)
private String role;
}
我正在嘗試使用以下查詢來查詢具有特定角色的用戶(在這種情況下,所有具有ROLE_ADMIN角色的用戶):
org.hibernate.query.Query<User> userQuery=session.createQuery("from User as mc where mc.userRoles in (from UserRole as ur where ur.role in (:uRoles))",User.class);
Set<String> roles = new HashSet<String>();
roles.add("ROLE_ADMIN");
userQuery.setParameterList("uRoles", roles);
List<User> admins = userQuery.getResultList();
但是,查詢不返回任何結果。
session.createQuery(
"from User as user join user.userRoles as userRole where userRole.role in :roles")
.setParameter("roles", Arrays.asList("ROLE_ADMIN"))
.getResultList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.