首页 > 解决方案 > 如何使用 JPA 将外键映射为表上的 @Id?

问题描述

我有 :

TABLE A : id_A (PK)
TABLE B : id_B (PK), id_FK_A (FK) <== which is id_A

使用 JPA 映射,我在TABLE B实体上做了这个

@Entity
@Getter
@Setter
@Table(name = "TABLE_B")
public class B implements Serializable {

@Id
@Column(name = "id")
private Integer id_B;

@Id
@ManyToOne()
@JoinColumn(name = "id_FK_A") <== is it correct ?
private A id_A;

错误来自正在托盘save()TABLE B实例的函数。但首先,我的实体 B 是否正确?id_A 应该按照我的方式映射吗?

我不认为我应该在这里使用任何 @IdClass 或复合键。

编辑 为什么我有这个错误:

This class [class ....entity.B] does not define an IdClass

我认为IdClasscomposite keys,在我的情况下,我只有一个id_A应该来自表 A 的外键!

标签: javajpaforeign-keys

解决方案


推荐阅读