表person對應(yīng)的model類:
@Entity
@Table(name = "person")
public class Person {
@Id
@GeneratedValue
private Long id;
private Integer age;
private String name;
@Column(name = "nick_name")
private String nickName;
private String company;
private Date birthday;
// getter and setter
}
數(shù)據(jù)庫訪問PersonRepository類:public interface PersonRepository extends JpaRepository<Person, Long>, JpaSpecificationExecutor<Person> {
}
查詢昵稱等于"dog",姓名等于"Jack"、"Eric"或者為空(null),并且公司也為空的人。public List<Person> findAll(SearchRequest request) {
Specification<Person> specification = new Specifications<Person>()
.eq("nickName", "dog")
.eq(isNotBlank(request.getName()), "name", "Jack", "Eric", null)
.eq("company", null) //or eq("company", (Object) null)
.build();
return personRepository.findAll(specification);
}
更多建議: