मेरे पास हाइबरनेट के बारे में एक सामान्य सवाल है कि मैं लड़ रहा हूं।हाइबरनेट कैस्केड PERSIST
मैं कक्षा एक और कक्षा बी, जहां बी ए
पर निर्भर है मेरी कोड में है जब मैं em.persist (objOfTypeA) कहते हैं मैं डालने जा सकते हैं और दोनों तालिकाओं एएए और बीबीबी में डालने के लिए उम्मीद करेंगे है। यदि मैं मैन्युअल रूप से ए को ए आईडी प्राप्त करता हूं और इसे प्रत्येक ऑब्जेक्ट के लिए सूची में भरता हूं और फिर उस सूची को जारी रखता है, तो चीजें काम कर रही हैं। लेकिन मुझे उम्मीद है कि यह जादुई हाइबरनेट द्वारा होगा।
क्या मैं कुछ गलत कर रहा हूं? या क्या मैं बस हाइबरनेट की बहुत अधिक उम्मीद कर रहा हूं?
धन्यवाद
@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;
...
}
यह मेरे लिए काम नहीं किया। समस्या यह है कि हाइबरनेट चाहता है कि ए को जारी रखने से पहले बी पर सेट किया जाए। यह काम किया: http://stackoverflow.com/questions/1795649/jpa-persisting-a-one-to- कई- संबंध –