我确定这是一个重复的问题,但我无法让它发挥作用。Home
我与 entity和 entity之间的共享主键具有一对零或一的关系Address
。
我的问题是我不断收到错误
缺少列:id
我正在映射我的实体,如此处所示,但不同的是,我的实体的列名Address
没有被调用id
但是homeId_pf
。
这是我的实体:
@Entity
@Table(name = "homes")
@Getter
@Setter
public class Home implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false, updatable = false)
private Long id;
@OneToMany(fetch = EAGER, cascade = {ALL}, orphanRemoval = true)
@JoinColumn(name = "homeId_fk", referencedColumnName = "id", nullable = false)
private Set<Room> rooms = new HashSet<>();
@OneToOne(fetch = EAGER, cascade = {ALL})
@PrimaryKeyJoinColumn
private Address address;
}
@Entity
@Table(name = "addresses")
@Getter
@Setter
public class Address implements Serializable {
@Id
@Column(name = "homeId_pf")
private Long id;
private Integer city;
@MapsId
@OneToOne
@JoinColumn(name = "id")
private Home home;
}
如前所述,我的addresses
表有两列:homeId_pf
,设置为 PK 和 FK 到homes.id
and city
。
我也尝试过设置@JoinColumn(name = "homeId_pf")
类Address
和@PrimaryKeyJoinColumn(referencedColumnName = "homeId_pf")
实体Home
,但没有帮助。