我有两个表Car和Status。这种关系是一对一的汽车有一个状态
Car Table
Id (PK)
Name
status_id(FK)
Status Table
Id(PK)
status_code
关系为car.status_id=status.id
实体
@Entity
class Car{
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
Long id;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "status_id", referencedColumnName = "id", insertable = false, updatable = false)
Status status
@Column(name="status_id")
Integer statusId
..
}
@Entity
class Status{
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
private Long id;
private int status_code;
}
保存汽车对象时:
Car{ id=null, name="my car", status_id=null, status={id=null, status_code=123}}
repo.saveAndFlush(car)
保存在表中的数据是:
Car
|Id|name|status_id|
|1|mycar|null | <------THIS NULL IS MY ISSUE
(这应该用状态表中插入的id来更新。如何实现?
Status
|id|status_code|
|1 |123 |
没有必要单独定义statusId字段。只要删除下面的行,它就会按预期工作。
@Column(name="status_id")
Integer statusId