jpa2.2.10 JpaSpecificationExecutor Specification 查询实体类指定字段,具体怎么写
时间: 2023-06-03 22:05:59 浏览: 104
您可以使用 JPA 的 Criteria API 来实现 Specification 查询实体类指定字段。以下是一个示例代码:
```
public List<Book> findBooksByAuthor(String author) {
return bookRepository.findAll((root, query, criteriaBuilder) ->
criteriaBuilder.and(
criteriaBuilder.equal(root.get("author"), author),
criteriaBuilder.selectCase()
.when(criteriaBuilder.like(root.get("title"), "%Java%"), true)
.otherwise(false)
));
}
```
在上面的代码中,我们使用 JpaSpecificationExecutor 接口的 findAll 方法来执行查询。lambda 表达式中的第一个参数 root 是指要查询的实体类的根对象,我们可以使用其 get 方法来获取实体类的属性。
使用 criteriaBuilder 对象来构建查询条件,在以上示例代码中,我们使用 criteriaBuilder 的 equal 方法来查询作者为指定参数 author 的书籍,并使用 selectCase 方法来查询书名中包含 "Java" 的书籍。
注意:在具体书写查询条件时,需根据实际情况和需求灵活运用 Criteria API,以达到精确的查询结果。
阅读全文