在HQL中编写此SQL查询的最有效方法是什么
select uar.*, (a.default_user_asset_role_id is not null) as is_default from User_asset_role uar
left outer join account a on a.default_user_asset_role_id = uar.id
where uar.account_id = 3
示例结果
1 role_read Role Read TRUE
2 role_admin Role Admin FALSE
3 role_write Role Write FALSE
最佳答案
您可以使用HQL的CASE表达式:
select uar.*, CASE WHEN a.default_user_asset_role_id is null THEN 0 ELSE 1 END as is_default from User_asset_role uar
left outer join account a on a.default_user_asset_role_id = uar.id
where uar.account_id = 3