如何使用休眠查询语言从 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)