将现有父对象持久化到子对象时出现java问题
我有一个带有预填充数据的现有表操作,我正在尝试保存一个包含该操作的对象停止。Id作为外键。下面是我试过的代码。但在停止表中,即使没有错误,也不会保存引用
public class Stop {
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ACTION_ID", updatable = false, insertable = false)
private Action action;
}
public class Action {
@Id
@Column(name = "ACTION_ID")
private String actionId;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ACTION_ID")
private Stop stops;
}
我尝试显式调用Optional<Action> action = actionRepo.findByActionId("ARRIVE")
并设置为stop对象。但它并没有保存参考
# 1 楼答案
为JPA对象设置新值后,需要调用save
# 2 楼答案
我认为您需要从Action类中删除@JoinColumn注释。通常情况下,双方都不需要