双向关系不是设定关系?

时间:2011-07-13 15:31:03

标签: java hibernate

考虑以下两个类

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 :(得分:1)

您需要在通道中设置服务器引用,因为这是拥有方(想想将外键作为拥有方的表)。只是将频道添加到集合中将无效。