我正在使用 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());
您的查询包含
:date
,它被解释为命名参数。
在查询定义和执行之间,您没有设置此参数,因此您会收到错误消息。
决定是否需要更改查询字符串或设置参数。如果是后者,添加一行
query.setParameter("date", ...);