我有一个关于Hibernate的一般性问题,正为此苦苦挣扎。
我有A类和B类,其中B类依赖于A。
在我的代码中,当我调用em.persist(objOfTypeA)时,我希望插入会同时插入到AAA表和BBB表。如果我手动保存A获取A的ID并将其填入每个对象的列表中,然后保存该列表,事情就能够运行。
但我希望这一切可以被Hibernate神奇地处理。
我是做错了什么吗? 还是我对Hibernate的期望值过高?
谢谢
@Entity
@Table(name = "AAA")
@Veto
public class A {
@Id
@GeneratedValue
@Column(name = "Id")
private Long id;
@NotNull
@Column(name = "Name")
private Long name;
...
@OneToMany(mappedBy="a", fetch=FetchType.LAZY, cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE})
private List<B> b;
...
}
@Entity
@Table(name = "BBB")
@Veto
public class B {
@Id
@GeneratedValue
@Column(name="Id")
private Long id;
@NotNull
@Column(name="AId")
private Long aId;
@NotNull
@Column(name = "Name")
private Long name;
@JoinColumn(name = "AId", referencedColumnName="Id", updatable = false, insertable = false)
@ManyToOne(optional = false)
private A a;
...
}