在JPQL中,我们可以使用什么转义字符来转义字符(如"'")?例:我正在做类似于...where person.name='Andy'这里工作正常但是当这个人的名字是Andy's时,where子句就变成了...where person.name='Andy's'它会返回一个错误
...where person.name='Andy'
where
...where person.name='Andy's'
lyr7nygr1#
它无法判断字符串文字在哪里结束。解决方案在规范中很好地说明了:包含单引号的字符串文字由两个单引号表示,例如:'常值''s'。在您的情况下是指:
...where person.name='Andy''s'
vnzz0bqm2#
下面是使用命名参数执行查询的示例代码。
Query query = entityManager.createQuery("SELECT p FROM Person p WHERE p.name LIKE :name" ); query.setParameter("name", personName);
在这里,你可以将字符串传递给personName,其中可能包含特殊字符,如"Andy's"。而且,它看起来很干净,不需要在查询执行前检查参数,也不需要改变搜索字符串。
personName
2条答案
按热度按时间lyr7nygr1#
它无法判断字符串文字在哪里结束。解决方案在规范中很好地说明了:
包含单引号的字符串文字由两个单引号表示,例如:'常值''s'。
在您的情况下是指:
vnzz0bqm2#
下面是使用命名参数执行查询的示例代码。
在这里,你可以将字符串传递给
personName
,其中可能包含特殊字符,如"Andy's"。而且,它看起来很干净,不需要在查询执行前检查参数,也不需要改变搜索字符串。