1 回答
TA贡献1802条经验 获得超4个赞
你不能这样做:
@Query("select c from Customer c where c.firstName like :filter"
+ " or c.lastName like :filter or c.emailAddress like :filter.......")
Page<Customer> filter(@Param("filter") String filter);
或者,您可以使用 QueryDsl。
扩展附加接口:
public interface CustomerRepository extends PagingAndSortingRepository<Customer, Long>, QueryDslPredicateExecutor<Customer>{
}
添加相关的构建工具:
然后您可以调用继承的方法:
Page<Customer> findAll(Predicate predicate, Pageable pageable)
像这样使用:
Page<Customer> page =repo.findAll(QCustomer.customer.firstName.like(filter)
.or(QCustomer.customer.lastName.like(filter).or(...));
参考:
https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/
添加回答
举报
