HQL 问题 帮忙解释一下

HQL 问题   帮忙解释一下

问题描述:

//查找用户拥有的角色,并按优先级从低到高排序

"select r.id from UsersRoles ur join ur.role r join ur.user u " +
"where u.id = ? order by ur.orderNo desc";

List roleIds = hibernateTemplate.find(hql,userId);

能解释 一下这个 Hql 语句吗

你可以在hibernate.properties中配置show_sql=true来显示执行的sql语句
我猜测执行的语句应该如下:
select t2.id from UsersRoles t1
inner join role t2 on t1.role_id=t2.role_id
inner join user t3 on t1.user_id=t3.user_id and t3.user_id=?
order by t2.orderNo desc

//查找用户拥有的角色,并按优先级从低到高排序

"select r.id from UsersRoles ur join ur.role r join ur.user u " +
"where u.id = ? order by ur.orderNo desc";

List roleIds = hibernateTemplate.find(hql,userId);

能解释 一下这个 Hql 语句吗

两个表关联查询而已,?代表的就是你传入的userId值,hql就是上面那句查询sql。