Tôi có một câu hỏi chung về Hibernate mà tôi đang chiến đấu với.Hibernate Cascade PERSIST
Tôi có lớp A và lớp B, trong đó B là phụ thuộc vào Một
Trong mã của tôi khi tôi gọi em.persist (objOfTypeA) Tôi mong chờ chèn để đi và chèn vào cả hai bảng AAA và BBB. Nếu tôi tự presist A có được một ID và điền vào nó trong danh sách cho từng đối tượng và sau đó vẫn tồn tại danh sách đó, mọi thứ đang làm việc. Nhưng tôi hy vọng điều này sẽ xảy ra kỳ diệu bởi Hibernate.
Tôi có làm gì sai không? Hoặc tôi chỉ mong đợi quá nhiều Hibernate?
Cảm ơn
@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;
...
}
Điều này không hiệu quả đối với tôi. Vấn đề là Hibernate muốn A được thiết lập trên B trước khi bền bỉ. Điều này đã làm việc: http://stackoverflow.com/questions/1795649/jpa-persisting-a-one-to-many-relationship –