com.something.SuperClass के साथ पहचान स्तंभ कुंजी पीढ़ी का उपयोग नहीं कर सकता:<संघ-उपवर्ग> (TABLE_PER_CLASS)
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class SuperClass implements Serializable {
private static final long serialVersionUID = -695503064509648117L;
long confirmationCode;
@Id
@GeneratedValue(strategy = GenerationType.AUTO) // Causes exception!!!
public long getConfirmationCode() {
return confirmationCode;
}
public void setConfirmationCode(long confirmationCode) {
this.confirmationCode = confirmationCode;
}
}
com.something.SubClass:
@Entity
public abstract class Subclass extends SuperClass {
private static final long serialVersionUID = 8623159397061057722L;
String name;
@Column(nullable = false)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
देता है मुझे यह अपवाद:
Caused by: org.hibernate.MappingException: Cannot use identity column key
generation with <union-subclass> mapping for: com.something.SuperClass
आईडी उत्पन्न करने के लिए मेरे लिए सबसे अच्छा और सबसे सुविधाजनक तरीका क्या है? मैं अपनी विरासत रणनीति को बदलना नहीं चाहता हूं।
परफेक्ट समाधान के लिए @ मैप्डसुपरक्लास का उपयोग कर सकते हैं। यहां तक कि हाइबरनेट मंचों didnot इस समाधान है लगता है, और वे विषय https://forum.hibernate.org/viewtopic.php?p=2319244&sid=4493aa54d27d3f81a0e27ecbdda075ae –
चारों ओर जा रहे थे इस मुद्दे MySql केवल या अपने नियमित के साथ है जैसा कि मैं टेबल प्रति वर्ग दृष्टिकोण के लिए एक वीडियो देखता हूं और यह पोस्टग्रेस में ठीक काम कर रहा था – Prashant
का उपयोग किया गया था, मैंने हाल ही में ड्रॉपविज़ार्ड एप्लिकेशन का परीक्षण करते समय इसमें भाग लिया था। मेरे मामले में मैंने सत्र फैक्ट्री बनाने के लिए डीडब्ल्यू द्वारा उपयोग किए गए समान कॉन्फ़िगरेशन विकल्पों का उपयोग करके यह सुनिश्चित किया। मुझे यकीन है कि संपत्ति को "hibernate.id.new_generator_mappings" को सही पर सेट करना निश्चित है। यह डीडब्ल्यू 0.7.0 है, हाइबरनेट 4.3.1, डीबी एच 2 था। – sfitts