Java 在@Formula中休眠更改别名
我有一个领域:Java 在@Formula中休眠更改别名,java,hibernate,formula,alias,annotation,custom,Java,Hibernate,Formula,Alias,Annotation,Custom,我有一个领域: @Formula(value = "(select max(crm_kk_rejestr.data_otrzymania) " + "from crm_kk_rejestr " + "where crm_kk_rejestr.idkntrh = idkntrh)") private Date dataOtrzymania; 我希望按此字段排序,但我得到一个错误: ORDER BY column or
@Formula(value = "(select max(crm_kk_rejestr.data_otrzymania) " +
"from crm_kk_rejestr " +
"where crm_kk_rejestr.idkntrh = idkntrh)")
private Date dataOtrzymania;
我希望按此字段排序,但我得到一个错误:
ORDER BY column or expression must be in SELECT list in this context.
它不起作用,因为这是子选择。如果我将subselect更改为别名“formula62_u2;”,则所有操作都正常
它可能会在hibernate中将别名更改为my custom?有一个解决方案(SQL Server),例如:
生成的查询将是:
....
( validSQLquery ) as 'yourOwnAlias', null as formula0_0_
....
你只需要:
order by yourOwnAlias
生成的查询是什么?如果您没有看到它,您需要在配置中启用hibernate查询日志记录。太棒了!这对我和我妈妈都有效。使用
validSQLquery
而不是NULL
用计算值填充yourFieldForAlias
。
....
( validSQLquery ) as 'yourOwnAlias', null as formula0_0_
....
order by yourOwnAlias