自定义查询

当查询结果无法对应到实体时(如:统计类的查询),无法使用Spring Data JPA提供的封装方法完成查询工作。开发人员只需使对应的Repository实现RepositoryEnhancer接口,即可进行自定义的查询。

class Foo {
    Long id;
    String name;
}
interface FooRepository extends RepositoryEnhancer {
}

StringBuilder sb = new StringBuilder("select t from Foo as t where 1=1 ");
Map<String, Object> parameters = new HashMap<>();
if (StringUtils.isNotEmpty(fooQo.getName())) {
    sb.append("    and t.name = :name");
    parameters.put("name", fooQo.getName());
}
List<Foo> count = fooRepository.findByJpql(sb.toString(), parameters);

Last updated