如何在jpa中加入具有多个主键或特定主键的列
Posted
技术标签:
【中文标题】如何在jpa中加入具有多个主键或特定主键的列【英文标题】:How to join column with multiple primary keys or specific primary key in 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
【问题讨论】:
【参考方案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 上进行连接
【讨论】:
以上是关于如何在jpa中加入具有多个主键或特定主键的列的主要内容,如果未能解决你的问题,请参考以下文章