繁体   English   中英

如何使用占位符语法在 PostgreSQL 和 Spring Data JPA 中使用 like 运算符进行模式匹配

[英]how to use a placeholder syntax for pattern matching using like operator in PostgreSQL with Spring Data JPA

我正在使用 Spring Data JPA 和 postgresql 作为数据库。想要使用用户给定的关键字搜索模式

@Query(value = "SELCET * FROM table_name WHERE column_name LIKE (CONCAT('%',:pattern,'%'))")       
List<Class> findPattern(String pattern);

但是 :pattern 并没有替换为模式值

您可以尝试将整个LIKE表达式绑定到单个占位符:

@Query(value = "SELECT * FROM table_name WHERE column_name LIKE :pattern")
List<Object[]> findPattern(String pattern);

用法将是这样的:

String value = "blah";
String pattern = "%" + value + "%";
List<Object[]> rs = repo.findPattern(pattern);

由于like %pattern%contains模式相同,因此您的用例甚至不需要编码查询:

List<MyClass> findByColumnNameContaining(String pattern);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM