java强制Hibernate在DB2中转义百分号和下划线符号
以下查询返回DOC_NAME
列值包含百分号的行
SELECT * FROM DOCUMENT sd WHERE DOC_NAME like lcase('%@%%') ESCAPE '@';
但是我不能强迫Hibernate做同样的事情
我已经看到了这个问题: Hibernate criteria accepting %% value 我已经编写了公认答案中建议的代码,但它似乎不适用于DB2。以下是日志的摘录:
...
where
lcase(this_.DOC_NAME) like ?
...
2020-12-07 18:38:48,774 TRACE org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - %\%%
没有ESCAPE
子句。我怎样才能强制Hibernate做对呢
# 1 楼答案
您必须实现SO answer中概述的自定义标准,或者更好,切换到JPA标准API,因为Hibernate本机标准API已被弃用,将来将被删除。替代品是JPA标准API+Hibernate扩展