多对多的JPA标准规范

时间:2019-07-30 07:40:22

标签: java jpa spring-data-jpa criteria-api

我有具有ManyToOne关系的实体ClientAgency,因此表client的列agency_id指向表agency,也指向{{1} }:

Client

有Spring Data JPA规范,用于选择@ManyToOne @JoinColumn(name = "agency_id") private Agency agency; id在以下的Client

Agency

现在我必须将ManyToOne关系更改为ManyToMany关系,以使public static Specification<Client> withAgencyIds(Collection<Long> agencyIds) { return (root, query, cb) -> root.join(Client_.agency).get(Agency_.id).in(agencyIds); } 具有:

Client

我应该如何调整上面的规范以选择具有@ManyToMany @JoinTable(name = "client_agency", joinColumns = @JoinColumn(name = "client_id"), inverseJoinColumns = @JoinColumn(name = "agency_id")) @OrderBy("name") private List<Agency> agencies = new ArrayList<>(); id的Client

非常感谢您!

1 个答案:

答案 0 :(得分:0)

此JPA标准规范可以正常工作:

public static Specification<Client> withAgencyIds(Collection<Long> agencyIds) {
    return (root, query, cb) -> root.join(Client_.agencies).get(Agency_.id).in(agencyIds);
}