用于Graphic Strings的SQL LIKE运算符

时间:2014-12-10 14:00:00

标签: java jpa db2 jpql openjpa

如何在OpenJPA for DB2中使用LIKE运算符作为Graphic字符串?

我在JPQL中使用以下内容并失败。

select u from User u where u.userName like :userName

userName = VARGRAPHIC(20)

然后我使用如下并失败

   select u from User u where u.userName like CAST(:userName AS VARGRAPHIC(20))

然后我使用如下并失败

select u from User u where LOCATE(:userName,u.userName) > 0 

我尝试从deferPrepare切换到true但仍然失败

编辑

与LOCATE

Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884, SQLERRMC=LOCATE;FUNCTION, DRIVER=3.63.75

与LIKE

  DB2 SQL Error: SQLCODE=-440, SQLSTATE=42884, SQLERRMC=LIKE;FUNCTION, DRIVER=3.63.75 

感谢任何帮助。

编辑

我用%%连接参数。问题似乎是LIKE不接受不平衡的操作数。两者都必须是图形字符串。所以我设置所以我设置

  

RequiresCastForComparisons =真

,然后查询结果包含一个转义(使用LIKE ESCAPE'\')。所以我设置了

  

RequiresSearchStringEscapeForLike=false

经过那些设定。 当我在搜索字符串花火大会时 与外卡参数,例如。 %花%返回空记录。

我明天将用生成的SQL更新问题。

提前致谢

1 个答案:

答案 0 :(得分:0)

我不得不使用通配符作为双字节"%"而不是正常的"%" 希望这会对某人有所帮助。