并非所有命名参数都已设置:[:date] hibernate [duplicate]

问题描述 投票:0回答:1

我正在使用 hibernate 从 java 运行 SQL,并尝试将数据直接转换为

List<Object>
.

但是我遇到了以下错误。

org.hibernate.QueryException:并非所有命名参数都已设置:[:date]

select CASE 
         WHEN (cast (p.jsonstring AS json) ->> 'expiryDate') IS NOT NULL THEN ((cast (p.jsonstring AS json) ->> 'expiryDate') ::date) 
         ELSE (asoc.creationdate +(cast (cast (p.jsonstring AS json) ->> 'validity' as INTEGER ) * interval '1 days'))  
        END as ExpiryDate 
from table1 as p;

我正在使用下面的 Java 语句

query = currentSession().createSQLQuery(sql);
list = LangUtils.cast(query.list());
java postgresql hibernate gwt hql
1个回答
0
投票

您的查询包含

:date
,它被解释为命名参数。 在查询定义和执行之间,您没有设置此参数,因此您会收到错误消息。

决定是否需要更改查询字符串或设置参数。如果是后者,添加一行

query.setParameter("date", ...);
© www.soinside.com 2019 - 2024. All rights reserved.