我的实体 Client
和 Agency
具有 ManyToOne 关系,因此表 client
的列 agency_id
指向表agency
,还有Client
:
@ManyToOne
@JoinColumn(name = "agency_id")
private Agency agency;
Spring Data JPA 规范可以选择具有 Agency
id 的 Client
:
public static Specification<Client> withAgencyIds(Collection<Long> agencyIds) {
return (root, query, cb) -> root.join(Client_.agency).get(Agency_.id).in(agencyIds);
}
现在我必须将 ManyToOne 关系更改为 ManyToMany 关系,以便 Client
具有:
@ManyToMany
@JoinTable(name = "client_agency",
joinColumns = @JoinColumn(name = "client_id"),
inverseJoinColumns = @JoinColumn(name = "agency_id"))
@OrderBy("name")
private List<Agency> agencies = new ArrayList<>();
我应该如何调整上述规范才能选择具有 Agency
ID 的 Client
?
提前非常感谢您!
最佳答案
这个 JPA Criteria 规范工作正常:
public static Specification<Client> withAgencyIds(Collection<Long> agencyIds) {
return (root, query, cb) -> root.join(Client_.agencies).get(Agency_.id).in(agencyIds);
}
关于java - ManyToMany 的 JPA Criteria 规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57266616/