【问题标题】:How to join column with multiple primary keys or specific primary key in jpa如何在jpa中加入具有多个主键或特定主键的列
【发布时间】:2021-07-17 17:40:15
【问题描述】:
@Entity
@Table(name = "A")
public class A {
    @Id
    @Column(name = "id")
    private Long id;

    @Id
    @Column(name = "name")
    private String name;

    @JoinColumn(name = "test_id")
    private List<Test> testId;
}
@Entity
@Table(name = "Test")
public class Test {
    @Id
    @Column(name = "test_id")
    private Long testId;
}

错误结果是

" JPA 与 OneToOne 关系的问题:引用的外键列数错误。应该是 2"

如何指定连接测试表的主键?

表 A:列 ID 地图与 表 B:列 test_id

【问题讨论】:

    标签: java sql spring-boot jpa spring-data-jpa


    【解决方案1】:

    由于您的表 A 有一个复合键,您应该将列分开到另一个键类中,然后加入表键的各个部分。

    例如,创建AKey

    @Embeddable
    public class AKey {
    
        @Column(name = "id")
        private Long id;
    
        @Column(name = "name")
        private String name;
    
        //getters and setters
    }
    

    然后替换A类中的id

    @Entity
    @Table(name = "A")
    public class A {
        @EmbeddedId
        private AKey key;
    
        @JoinColumn(name = "test_id")
        private List<Test> testId;
    }
    

    然后您可以在 Test.testId = A.key.id 上进行连接

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-10
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 2021-11-03
      • 2018-02-02
      • 2010-11-23
      相关资源
      最近更新 更多