Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa JPQL中的转义字符_Jpa_Jpql - Fatal编程技术网

Jpa JPQL中的转义字符

Jpa JPQL中的转义字符,jpa,jpql,Jpa,Jpql,在JPQL中,什么是转义字符,我们可以用来转义字符,如“'” 我在做类似的事情 “…where person.name='Andy'” 在这里,它工作得很好 但是当人名为Andy时,where子句变成 “…人在哪里。名字='Andy's'” 它返回的错误是它无法找出字符串文字的结尾。规范中很好地说明了解决方案: 包含单引号的字符串文字由两个引号表示 单引号,例如:'文字''s' 在你的情况下,这意味着: ...where person.name='Andy''s' 下面是使用命名参数执行查询的

在JPQL中,什么是转义字符,我们可以用来转义字符,如“'”

我在做类似的事情

“…where person.name='Andy'”

在这里,它工作得很好

但是当人名为Andy时,where子句变成

“…人在哪里。名字='Andy's'”


它返回的错误是

它无法找出字符串文字的结尾。规范中很好地说明了解决方案:

包含单引号的字符串文字由两个引号表示 单引号,例如:'文字''s'

在你的情况下,这意味着:

...where person.name='Andy''s'

下面是使用命名参数执行查询的示例代码

Query query = entityManager.createQuery("SELECT p FROM Person p WHERE p.name LIKE :name" ); 

query.setParameter("name", personName);
在这里,您可以将字符串传递给
personName
,其中可能包含特殊字符,如“Andy's”

而且,它看起来非常干净&在执行查询和更改搜索字符串之前不需要检查参数