java - 具有三个实体的 Hibernate 约束

标签 java spring hibernate

假设我有实体 A、B 和 C。我想在这三个表之间创建约束。我怎样才能做到这一点?我一直在寻找,人们通常做的是创建一个只有 A 和 B 的 id 的表,然后在他的类上配置像这样的多对多关系。

      @ManyToMany(cascade = {CascadeType.MERGE})
@JoinTable(name = "A_B",
        joinColumns = @JoinColumn(name = "A_id"),
        inverseJoinColumns = @JoinColumn(name = "B_id"),
        uniqueConstraints = @UniqueConstraint(columnNames = {"A_id", "B_id"}))

但是我怎样才能完成三个类(class)呢?

问候。

最佳答案

@MapKeyJoinColumn :指定到作为映射键的实体的映射。映射键联接列位于用于表示映射的目标实体的集合表、联接表或表中。如果未指定 MapKeyJoinColumn 注释,则假定为单个连接列并应用默认值。

看看这个:- @MapKeyJoinColumn in API doc & Hibernate: How to Join three 3 tables in one join table in Annotation .

关于java - 具有三个实体的 Hibernate 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24676189/

相关文章:

java - 如何用java制作小警报通知

hibernate - 使用 2 个实体和带有 group by 的聚合函数时,如何处理 JPA 中的类型查询?

hibernate - 是否可以从单个线程抛出StaleStateObjectException?

java - Safari 无法下载此文件 (Passbook Pass)

java - 静态初始化器和安全发布

java - Spring 食谱书: AOP issue

java - ANT 输出、java 日志记录和 SPRING 教程的问题

java - Spring Boot 中的多播 Websocket

java - Ignite 启动时间过长,并且在应用程序运行时经常失败

java - Hibernate 不一致地加载 Postgresql bytea