gpt4 book ai didi

Java JPA。 SQL 接受 '_' LIKE 错误

转载 作者:行者123 更新时间:2023-11-29 02:10:42 26 4
gpt4 key购买 nike

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

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

当用户尝试搜索包含特殊字符(例如“Book(_、#、% 等)”)时,问题就来了。在这种情况下,JPA 使用 LIKE 构建 SQL 查询,它接受下划线或其他特殊字符,如 LIKE 模板的一部分而不是搜索条件。我怎样才能避免这种情况?

附言我正在使用 MySQL

最佳答案

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

例如:

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

然后调用findByNameIgnoreCaseContainingOrDescriptionIgnoreCaseContaining(name, description)

关于Java JPA。 SQL 接受 '_' LIKE 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53558667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com