检查值时,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 楼答案
事实证明,这适用于Hibernate: