繁体   English   中英

使用CAST休眠@Formula

[英]hibernate @Formula with CAST

以下代码段可以正常工作:

@Formula("CAST (SELECT AVG(p.\"date\") FROM prediction p) AS \"datetime\"")
@Temporal(TemporalType.DATE)
private Date avgDate;

它导致包含以下内容的查询(节选):

SELECT proc0_.ID AS ID1_10_0_,
...
   proc0_.CAST
(SELECT AVG(p."date")
FROM prediction p) AS "datetime" AS formula0_0_,
...

冬眠抱怨:

... right syntax to use near 'SELECT AVG(p."date") FROM prediction p) AS "datetime" as formula0_0_'

使用@Formula("SELECT CAST (AVG(p.\\"date\\") AS \\"datetime\\") FROM prediction p")不起作用,出现类似错误

据我了解,sql崩溃了,因为休眠以某种方式将CAST(为一个字段,因为它在proc0_ proc0_加了它。

关于如何解决这个问题有什么建议吗? (也许@Formula在这里不是正确的方法?)

CAST之后删除空格,您就可以了:

@Formula("CAST(SELECT AVG(p.\"date\") FROM prediction p) AS \"datetime\"")
@Temporal(TemporalType.DATE)
private Date avgDate;

@Formula Hibernate解析器非常有限。

我在表达式中缺少任何约束-当前公式将为每个实体返回相同的avgDate 但是我想您已经从问题中删除了这个问题以保持简单...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM