我有一個關於休眠的一般問題,我打電話。休眠級聯PERSIST
我有A類和B類,B是依賴於
在我的代碼,當我打電話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;
...
}
這不適合我。問題在於Hibernate希望在持久化之前將A設置在B上。這工作:http://stackoverflow.com/questions/1795649/jpa-persisting-a-one-to-many-relationship – 2016-01-11 03:48:01