如何使用休眠查询语言从 oneToMany table 中获取最大值
How to get max value from the oneToMany table using hibernate query language
以下是我的模式结构
sub_roles
id
name
role_id
parent_id
roles
id
name
user_id
last_updated
user
id
name
type
我想根据parent_id
获取最近修改角色信息的用户
我编写了以下查询来获取基于 parent_id 的用户,如下所示
select sr.role.user, sr.parent, sr.role from SubRole sr where sr.parent.id in (:parentIds)
我想获取最近更新的用户角色。如何通过修改上面的查询来实现这个
select user.id as id, SUBSTRING_INDEX( GROUP_CONCAT(CAST(user.name AS CHAR) ORDER BY rl.last_updated desc), ',', 1 ) as name, SUBSTRING_INDEX( GROUP_CONCAT(CAST(user.type AS CHAR) ORDER BY rl.last_updated desc), ',', 1 ) as type from sub_roles srl INNER JOIN roles rl on srl.role_id = rl.id INNER JOIN user on rl.user_id = user.id where parent_id in (:parentIds) group by user.id;
P.S。 : 未测试
这样试试
select sr.parent, sr.role, u from SubRole sr JOIN sr.role.user u WHERE sr.parent.id IN (:parentIds)
以下是我的模式结构
sub_roles
id
name
role_id
parent_id
roles
id
name
user_id
last_updated
user
id
name
type
我想根据parent_id
获取最近修改角色信息的用户我编写了以下查询来获取基于 parent_id 的用户,如下所示
select sr.role.user, sr.parent, sr.role from SubRole sr where sr.parent.id in (:parentIds)
我想获取最近更新的用户角色。如何通过修改上面的查询来实现这个
select user.id as id, SUBSTRING_INDEX( GROUP_CONCAT(CAST(user.name AS CHAR) ORDER BY rl.last_updated desc), ',', 1 ) as name, SUBSTRING_INDEX( GROUP_CONCAT(CAST(user.type AS CHAR) ORDER BY rl.last_updated desc), ',', 1 ) as type from sub_roles srl INNER JOIN roles rl on srl.role_id = rl.id INNER JOIN user on rl.user_id = user.id where parent_id in (:parentIds) group by user.id;
P.S。 : 未测试
这样试试
select sr.parent, sr.role, u from SubRole sr JOIN sr.role.user u WHERE sr.parent.id IN (:parentIds)