Spring 类似或包含 JPA 的数据

Spring Data JPA Like or Containing

我正在弄乱 Spring Boot Data JPA,阅读 documentation,我感到困惑。有什么区别?

我的理解是,“Like”运算符使 SQL 没有围绕我的字符串的“%”(其中名称类似于 'String'),“Containing”运算符使 SQL 我的字符串周围有“%”(名称如“%String%”)。我错了吗?

我使用了“Like”运算符,在双方都需要“%”的情况下他工作得很好,所以我真的很困惑!

您可以用 like 模拟 containing 是正确的。

区别是:

  • 使用 like 时,您必须自己用通配符将搜索字符串括起来。
  • 你不仅可以在开头或结尾使用通配符,还可以在中间使用通配符,中间可以使用多个通配符,也可以使用不同的通配符,例如 _ 匹配单个字符。
  • 最后一个微妙的区别是 containing 将转义搜索参数中包含的通配符,而后者不会。所以在搜索 abc%def 时,两者的行为不同
                    | containing     | like (with additional `%` around the searchstring)
    -------------------------------------------------------------------------------------
    123abc%def456   | matches        | matches
    123abcXYZdef456 | does not match | matches