java - ManyToMany 的 JPA Criteria 规范

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

我的实体 ClientAgency 具有 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/

相关文章:

java - 我是否总是需要在保存 Hibernate 主对象时显式设置子对象

java - Spring Data JPARepository : How to conditionally fetch children entites

java - Hibernate单向ManyToMany更新目标构成关系

java - 迷宫求解器问题(出现堆栈溢出错误)

java - Weblogic到tomcat迁移性能问题

java - JAR 文件失败 - Maven 和 Hibernate 项目

java - 具有大量实体的规范和 XML 解析 -> 内存不足错误

java - Spring JPA : How to upsert without losing data

java - 没有可用于当前线程的实际事务的 EntityManager - 无法可靠地处理 'flush' 调用

java - 使用 spring data jpa 从数据库过滤和检索数据