में एक दूसरे @Embeddable फ़ील्ड मैपिंग हाइबरनेट मैक एक उप-वर्ग में एक @Embeddable ऑब्जेक्ट को मैप करने की कोशिश कर रहा हूं जिसका मूल वर्ग पहले से ही उस @Embeddable प्रकार का क्षेत्र है।एक सबक्लास
हाइबरनेट Embeddable Objects documentation दावों मैं एक @Embeddable वस्तु के स्तंभ नाम ओवरराइड करने के लिए @AttributeOverrides उपयोग कर सकते हैं:
उदा
@Embeddable
public class ContentID implements Serializable {
@Column(name="contentID")
private String contentPath;
}
@MappedSuperclass
public abstract class BaseDomainObject implements Serializable {
@Embedded
private ContentID contentID;
}
public class Achievement extends BaseDomainObject {
@Embedded
@AttributeOverrides({
@AttributeOverride(name="contentID", column = @Column(name="awardedItem")),
})
private ContentID awardedItem;
}
त्रुटि मैं मिलता है:
@Entity
public class Person implements Serializable {
// Persistent component using defaults
Address homeAddress;
@Embedded
@AttributeOverrides({
@AttributeOverride(name="iso2", column = @Column(name="bornIso2")),
@AttributeOverride(name="name", column = @Column(name="bornCountryName"))
})
Country bornIn;
...
}
यहाँ मामला मेरे पास है
org.hibernate.MappingException: अचीवमेंट स्तंभ: इकाई के लिए मानचित्रण में दोहराया स्तंभ: contentID ( org.hibernate.mapping.PersistentC पर सम्मिलित = "झूठी" अद्यतन = "झूठी") के साथ मैप किया जाना चाहिए lass.checkColumnDuplication (PersistentClass.java:652) org.hibernate.mapping.PersistentClass.checkPropertyColumnDuplication (PersistentClass.java:674) पर org.hibernate.mapping.PersistentClass.checkPropertyColumnDuplication (PersistentClass.java:670) पर पर org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:696) org.hibernate.mapping.PersistentClass.validate (PersistentClass.java:450) पर org.hibernate.mapping.SingleTableSubclass.validate पर (SingleTableSubclass .java: 43) org.hibernate.cfg.Configuration.validate (Configuration.java:1108) परorg.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java:1293) org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory (AnnotationConfiguration.java:867) पर
अद्यतन:
मैंने इस से संबंधित हाइबरनेट मुद्दों के लिए देखा और ग्रैलीज प्रोजेक्ट ने दावा किया कि उन्होंने इस मुद्दे को ठीक किया है, लेकिन उनका एनोटेशन समाधान मान्य जैवैक्स नहीं है। प्रेरणा एनोटेशन (शायद यह एक नया संस्करण है)।
देखें जिज्ञासा से बाहर: क्यों आप देश के बजाय एम्बेड करूं एक रिश्ते का उपयोग करने का? –