我有三个表User、UserRole(Join表)和Role。从角色表中,我需要获取基于条件的名称。我有sql查询,这是工作在这种情况下,但想尝试使用条件。
Select firstname, lastname from user, userrole, role where user.id=userrole.userid and userrole.roleid=role.id and role.name='James';这将返回部分对象firstname和lastname,稍后我可以使用它们作为fullname。
我怎样才能用HQL或标准做同样的事情?有人能帮我吗?
在我的用户实体中
@ManyToMany(fetch = FetchType.EAGER)
@Fetch(FetchMode.SELECT)
@JoinTable(
name = "userrole",
joinColumns = { @JoinColumn(name = "userid") },
inverseJoinColumns = @JoinColumn(name = "roleid")
)
public Set<Role> getRoles() {
return roles;
}发布于 2015-03-22 17:30:29
使用下面给出的代码。
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
Query query = session.createQuery("from user user where user.name=:username").setParameter("username", "James");
List<User> list = query.list();https://stackoverflow.com/questions/29181210
复制相似问题