我具有与一对一关系的ServiceConfig
实体:
@OneToMany(mappedBy = "serviceConfig", fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
private List<NotificationItem> notificationItems;
@OneToMany(mappedBy = "serviceConfig", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
private List<QosItem> qosItems;
在每个儿童班中,我都有:
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "TD_SERVICE_CONFIG_ID")
private ServiceConfig serviceConfig;
当我获取新的
ServiceConfig
时,我有3个表ServiceConfig
,NotificationItem
和QosItem
。在NotificationItem
和QosItem
表中,我有空列TD_SERVICE_CONFIG_ID
,但插入了所有数据。如何配置休眠(注释或其他配置)以成功将父ID插入子代的
TD_SERVICE_CONFIG_ID
列? 最佳答案
您的配置看起来不错。
我怀疑(尽管显然看不到代码无法肯定地说)您没有设置关系的反面,这是必需的。
您将添加一个NotificationItem
,如下所示:
NotificationItem item = new NotificationItem();
item.setServiceConfig(service); //set the other side of the bi-directional relationship
servive.getNotificationItems().add(item);
中线是这里的重要一环。