考虑以下两个类
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没有自动填写?我怎样才能填写它?
答案 0 :(得分:1)
您需要在通道中设置服务器引用,因为这是拥有方(想想将外键作为拥有方的表)。只是将频道添加到集合中将无效。