2011-07-13 107 views
0

考慮以下兩類雙向關係是不是設置關係?

public class ServerDAOHb implements Serializable { 
    .... 
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "server") 
    private Set<ChannelDAOHb> channels = new HashSet(); 
} 

public class ChannelDAOHb implements Serializable { 
    ... 
    @ManyToOne(cascade = CascadeType.ALL) 
    @JoinColumn(name = "SERVER_ID" /*, nullable = false*/) 
    private ServerDAOHb server; 
} 

爲什麼,當我添加一個新通道到服務器(包括未保存尚),該頻道的服務器仍然是空?即使在數據庫中,通道的SERVER_ID也是空的。奇怪的是,雖然有一臺服務器,它仍然返回通道。

爲什麼SERVER_ID沒有自動填寫?我怎樣才能填補它?

回答

1

您需要在通道中設置服務器引用,因爲這是擁有方(認爲該表具有作爲擁有方的外鍵)。只是將該頻道添加到該集合將不起作用。

+0

有道理我猜。謝謝您的幫助 – TheLQ