繁体   English   中英

使用设置参数在JPA查询中插入特殊字符

[英]Insert special characters in JPA query with set parameter

在JPA 2.0中,是否可以使用特殊字符设置查询参数? 我的意思是,如果我这样做: query.setParameter(field, "%" + value.toString() + "%"); ,它需要%作为特殊(通配符)字符吗? 在我看来,这不是真的,因为我的搜索不适用于截断的单词...您能帮我吗?

如果您正在使用

LIKE :feild 

对于

query.setParameter(field, "%" + value.toString() + "%");

然后,值将保持无“%”符号。 您可以尝试在查询中使用%并从setParameter()方法发送值。

您也可以尝试JPA的CreteriaBuilderInterface http://www.objectdb.com/java/jpa/query/jpql/string

您必须转义查询。 尝试使用"\\\\%"代替

您作为查询参数传递的所有信息将传递给查询并返回数据库。 因此,对查询参数的转义字符的选择将取决于数据库。 像在mysql中一样,它是“ \\”代表“'”,“ \\%”代表“%”,因此,如果我想将“约翰的10%佣金”作为查询参数发送给m​​ysql,我将尝试使用query.setParameter(field, "john\\\\'s 10\\\\% commission") 在您的情况下query.setParameter(field, "\\\\%" + value.toString() + "\\\\%"); 应该管用。 但是,请检查数据库文档以找出特殊情况下的转义符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM