我正在编写一个HQL查询,格式为:
from a where ... or exists (from b inner join b.c where ...) and ...
我从此查询中获取了a
类型的实体。但是,我还需要知道exists
子句是否在我的代码中回复了。如果这是SQL,我会将它添加到选择列表中。但是,即使我添加到HQL select子句,它也会变为:
select a, exists (from b inner join b.c where ...) as x from a where ... or x and ...
在我的代码中,我现在必须选择查看无类型数据,或查看a
类型的类型实体,并丢弃随之回来的值x
。
有没有办法以某种方式获取类型数据加上额外的列?
答案 0 :(得分:3)
我看到你有两个选择:
1)将附加属性作为只读映射属性添加到您的实体,利用formula
映射来使用内联sql或udf派生值。
2)使用自定义hql查询仅获取您所需的数据并使用aliastobeanresulttransformer
投影到包含您感兴趣的字段的强类型dto。
你去哪条路线真的取决于你,但我倾向于倾向于选项#2,以免污染你的域模型中不需要的字段。