javajpasql接受'\'错误

v8wbuo2f  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(220)

我使用springdatajpa查询从数据库中获取搜索结果。我正在按名称或描述搜索结果(这些是我的表中的列)。

List<MyClass> findByNameIgnoreCaseContainingOrDescriptionIgnoreCaseContaining(String name, String description);

当用户试图搜索包含特殊字符的内容(例如 Book ( _ , # , %, etc.) "). 在本例中,jpa使用 LIKE 它接受下划线或其他特殊字符作为模板的一部分,而不是搜索条件。我怎样才能避免这种情况?
p、 我用的是mysql

6l7fqoea

6l7fqoea1#

我不完全确定它在spring数据中是如何工作的,也许有一种更简洁的方法,但是您可以在将这些字符传递给查询之前屏蔽它们。
例如:

String name = name.replace("_", "\\_");
String description = description.replace("_", "\\_");

然后打电话 findByNameIgnoreCaseContainingOrDescriptionIgnoreCaseContaining(name, description) .

相关问题