2016-07-28 39 views
3

我有實體ServiceConfig與以一對多的關係:父ID不插入到子表白衣在Java一對多關係冬眠

@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,NotificationItemQosItem。在NotificationItemQosItem表中,我有空列TD_SERVICE_CONFIG_ID但插入的所有數據。

如何配置hibernate(註解或其他配置)成功插入父母id到TD_SERVICE_CONFIG_ID子欄?

+0

如何保存實體?!你是否爲兩個NotificationItem和QosItem設置了ServiceConfig? –

回答

2

你的配置看起來不錯。

我懷疑(雖然顯然不能確定沒有看到你的代碼)你沒有設置關係的反面,這是必需的。 你會添加一個NotificationItem如下:

NotificationItem item = new NotificationItem(); 
item.setServiceConfig(service); //set the other side of the bi-directional relationship 
servive.getNotificationItems().add(item); 

中間線是這裏最重要的一個。

+0

謝謝!我完全忘了它)))) – user5620472

+0

它也抓到我以前! – StuPointerException