我具有与一对一关系的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个表ServiceConfigNotificationItemQosItem。在NotificationItemQosItem表中,我有空列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);

中线是这里的重要一环。

09-26 17:35