我有以下的Spring Data JPA仓库:
@RepositoryRestResource(collectionResourceRel = "product", path = "product")
public interface ProductRepository extends PagingAndSortingRepository<Product, Integer> {
@RestResource(path = "nameStartsWith", rel = "nameStartsWith")
Page findByNameStartsWithOrderByNameDesc(@Param("name") String name, Pageable p);
}
产品类的定义很明显,是postgresql数据库上映射的JPA实体。
它的效果很好,但有一个令人烦恼的问题,我无法解决。
我想spring将这个方法定义转换为带有like运算符的sql查询,该运算符使用_和%作为通配符。无论如何,我担心这些字符在传递给此方法时没有被转义,结果如果我搜索包含
_
的名称的产品,则会被理解为“任何字符”,由于我的产品使用的命名约定而言,这是不好的。我需要一种方法,在传递给该方法之前对名称参数进行转义,但我能想到的唯一方法是自己实现该方法,失去了spring data所提供的所有奇妙功能。是否有更优雅的方法来做到这一点?
谢谢!
PS:我正在使用Spring Boot 1.4.0