【发布时间】:2018-06-15 13:32:49
【问题描述】:
我正在尝试执行以下查询:
SELECT p FROM Pessoa p WHERE TRANSLATE(UPPER(p.nome), 'ÂÁÀÄÃÊÉÈËÎÍÌÏÔÓÒÖÕÛÚÙÜÇ', 'AAAAAEEEEIIIIOOOOOUUUUC') LIKE CONCAT('%',TRANSLATE(UPPER(?1), 'ÂÁÀÄÃÊÉÈËÎÍÌÏÔÓÒÖÕÛÚÙÜÇ', 'AAAAAEEEEIIIIOOOOOUUUUC'),'%')
但我意识到hibernate正在生成以下最终SQL:
... where TRANSLATE(upper(pessoa0_.ds_nome), 'ÂÁÀÄÃÊÉÈËÎÍÌÏÔÓÒÖÕÛÚÙÜÇ', 'AAAAAEEEEIIIIOOOOOUUUUC') like ('%'||TRANSLATE(upper(?)||'ÂÁÀÄÃÊÉÈËÎÍÌÏÔÓÒÖÕÛÚÙÜÇ'||'AAAAAEEEEIIIIOOOOOUUUUC')||'%')...
请注意,TRANSLATE 函数中的逗号已替换为 ||,这会导致 org.postgresql.util.PSQLException: ERROR: function translate(text) does not exist强>
我做错了什么?
春季:4.3.4.RELEASE
弹簧数据:spring-data-jpa:1.10.5.RELEASE
【问题讨论】:
标签: spring hibernate spring-data spring-data-jpa jpql