HQL中的内联表达式

时间:2011-09-26 15:25:08

标签: java hibernate hql

在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

1 个答案:

答案 0 :(得分:1)

您可以使用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