【问题标题】:Insert special characters in JPA query with set parameter使用 set 参数在 JPA 查询中插入特殊字符
【发布时间】:2013-11-01 09:05:07
【问题描述】:
在 JPA 2.0 中有没有办法用特殊字符设置查询参数?我的意思是,如果我这样做:query.setParameter(field, "%" + value.toString() + "%");,它需要 % 作为特殊(通配符)字符?在我看来,在这种情况下这不是真的,因为我的搜索不适用于截断的单词......
你能帮帮我吗?
【问题讨论】:
标签:
java
sql
jpa
postgresql-9.1
【解决方案2】:
您作为查询参数传入的任何内容都将传递给查询并返回到数据库。因此查询参数的转义字符的选择将取决于数据库。就像在mysql中一样,“'”是“\'”,“%”是“\%”,所以如果我想将“john's 10% Commission”作为查询参数发送到mysql,我会尝试query.setParameter(field, "john\\'s 10\\% commission");在你的情况下query.setParameter(field, "\\%" + value.toString() + "\\%"); 应该可以工作。但是检查数据库的文档以找出特殊情况下的转义字符。