java 未设置所有命名参数:[:date]休眠[复制]

kyxcudwk  于 2023-02-20  发布在  Java
关注(0)|答案(1)|浏览(134)
    • 此问题在此处已有答案**:

Not all named parameters have been set: [:int](2个答案)
Escaping colon ":" in Hibernate/Postgres/JSON(1个答案)
1小时前关闭。
我正在使用Hibernate从java运行SQL,并尝试将数据直接转换为List<Object>
但我已经接近误差了。
org.hibernate.QueryException:未设置所有命名参数:[:日期]

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());
vhmi4jdf

vhmi4jdf1#

您的查询包含:date,它被解释为一个命名参数。在查询定义和执行之间,您没有设置此参数,因此会得到错误消息。
确定是否需要更改查询字符串或设置参数。如果是后者,请添加一行,例如

query.setParameter("date", ...);

相关问题