下面的查询返回 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条答案
按热度按时间mnemlml81#
您必须实现一个定制的标准,如so答案中所述,或者更好,切换到jpa criteriaapi,因为hibernate原生criteriaapi已被弃用,将来将被删除。替代品是jpa标准api+hibernate扩展。