我阅读了很多关于@OneToMany 的主题和论坛,但不幸的是,这些都无济于事。
例如,我们有这样的实体:
@Entity
@Table(name = "MANAGER")
public class Manager{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "MAN_ID")
private long id;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "MAN_ID", updatable=true)
private Set<Workers> workers;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "MAN_ID", updatable=true)
private Set<Helpers> helpers;
...
}
@Entity
@Table(name = "WORKERS")
public class Workers{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private long id;
...
}
@Entity
@Table(name = "HELPERS")
public class Helpers{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private long id;
...
}
现在我试图保存第一次 Manager 对象(两个集合都不为空)
Session session = getSession();
Transaction tx = session.beginTransaction();
session.save(holder);
tx.commit();
作为回报,我看到 hibernate 如何尝试插入,但没有更新工人和助手。当我从 DB 取回 Manager 时,两个列表都是空的(null)。我在这里想念什么?