पर होने मैं बस वहाँ इस तरह से मैं अपने MySQL तालिका का निर्माण हो सकता है के रूप मेंजेपीए + हाइबरनेट: कैसे एक बाधा हटाना कैस्केड
ALTER TABLE `USERINFO`
ADD CONSTRAINT `FK_USER_ID` FOREIGN KEY (`USERID`) REFERENCES `USERACCOUNT` (`USERID`)
ON DELETE CASCADE
ON UPDATE CASCADE;
हालांकि, मैं केवल यह मेरा DDL में मिल गया है, तो सोच रहा हूँ परिभाषित करने के लिए जब हाइबरनेट ++ जेपीए शुरू होता है "<property name="hibernate.hbm2ddl.auto" value="create" />
"
ALTER TABLE `USERINFO` ADD CONSTRAINT `FK_USER_ID` FOREIGN KEY (`USERID`) REFERENCES `USERACCOUNT` (`USERID`);
मेरी कक्षाओं में होने मेरी मेज के निर्माण के लिए, मैं इन एनोटेशन सेटअप,
// UserAcc.java
@Entity
@Table(name = "USERACC")
public class UserAcc implements Serializable {
private static final long serialVersionUID = -5527566248002296042L;
@Id
@Column(name = "USERID")
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer userId;
@OneToOne(mappedBy = "userAcc")
private UserInfo userInfo;
....
public UserInfo getUserInfo() {
return userInfo;
}
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
...
और,
// UserInfo.java
@Entity
@Table(name = "USERINFO")
public class UserInfo implements Serializable {
private static final long serialVersionUID = 5924361831551833717L;
@Id
@Column(name = "USERINFO_ID", nullable=false)
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer userInfoId;
@OneToOne(cascade = {CascadeType.ALL})
@JoinColumn(name="USERID", nullable=false)
@ForeignKey(name = "FK_USER_ID")
private UserAcc userAcc;
public Integer getUserInfoId() {
return userInfoId;
}
public void setUserInfoId(Integer userInfoId) {
this.userInfoId = userInfoId;
}
...
ध्यान दें कि, उपयोगकर्ता खाता तालिका माता-पिता/मुख्य तालिका यहाँ है, जबकि UserInfo एक विस्तारित तालिका है किसी अन्य संस्था को सामान्य बनाते हैं। किसी भी उत्तर की सराहना की जाएगी। मैं सिर्फ उत्सुक हूं कि यह कैसे किया जाता है क्योंकि मुझे MySQL में भी काम करना अच्छा लगता है। मैं वास्तव में मूल तालिका (USERACOUNT) से एक रिकॉर्ड हटाने के लिए उपयोग किया जाता हूं जो मुझे माता-पिता/प्राथमिक तालिका से विशिष्ट रिकॉर्ड पर निर्भर बाल अभिलेखों के माध्यम से एक डिलीट को कैस्केड करने की अनुमति देगा।
धन्यवाद!
आप इस समस्या को जेपीए का उपयोग कर के लिए एक समाधान मिला? मुझे एक ही समस्या है और मैं एक बिडरेक्शनल रिलेशनशिप का उपयोग नहीं करना चाहता, जिससे माता-पिता पर आलसी आभारी हो। –