表person對應的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
}
數據庫訪問PersonRepository類:
public interface PersonRepository extends JpaRepository<Person, Long>, JpaSpecificationExecutor<Person> {
}
查詢姓名不等于"Jack"和"Eric",并且公司不等于空(Null),昵稱不等于"dog"的人。public List<Person> findAll(SearchRequest request) {
Specification<Person> specification = new Specifications<Person>()
.ne("nickName", "dog")
.ne(isNotBlank(request.getName()), "name", "Jack", "Eric")
.ne("company", null) //or ne("company", (Object) null)
.build();
return personRepository.findAll(specification);
}
更多建議: