有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

检查值时,Hibernate出现java DB2查询问题

我使用Hibernate 4和DB2运行本机查询:

select * from TABLE1 t where (:param1 is null or t.NAME = :param1)

这会引发一个异常,即null在上下文中无效(因为SQL变成了表1 t中的select*,其中(null为null或t.NAME=null))

所以我试着:

select * from TABLE1 t where (COALESCE(:param1,'!') = '!' or t.NAME = :param1)

当我传递值“JUSTIN”时抛出异常

"THE VALUE OF INPUT VARIABLE OR PARAMETER NUMBER  IS INVALID OR TOO LARGE FOR THE TARGET COLUMN OR THE TARGET VALUE"

这似乎是因为DB2检查“!”和“:param1”的长度

DB2中有没有传递动态参数的方法

我开始讨厌DB2了


共 (1) 个答案

  1. # 1 楼答案

    事实证明,这适用于Hibernate:

    select * from TABLE1 t where NVL(:param1, t.NAME) = t.NAME;