表person對(duì)應(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; @ManyToMany(cascade = ALL, fetch = FetchType.LAZY) private Set<Address> addresses = new HashSet<>();
// getter and setter
}
表address對(duì)應(yīng)的model類:
@Entity @Table(name = "address") public class Address { @Id @GeneratedValue private Long id; private String street; private Integer number; @ManyToMany(mappedBy = "addresses") private Set<Person> owners = new HashSet<>();
// getter and setter
}
數(shù)據(jù)庫(kù)訪問(wèn)PersonRepository類:
public interface PersonRepository extends JpaRepository<Person, Long>, JpaSpecificationExecutor<Person> {
}
查詢年齡在10到35之間住在"Chengdu"的人。public List<Person> findAll(SearchRequest request) { Specification<Person> specification = new Specifications<Person>() .between("age", new Range<>(10, 35)) .eq("addresses.street", "Chengdu") .build(); return phoneRepository.findAll(specification); }
更多建議: