मेरे पास एक सार वर्ग है जो कुछ सामान्य कार्यक्षमता प्रदान करता है जो कुछ ईजेबी इकाइयों को प्राप्त करने के लिए है। इनमें से एक टाइमस्टैम्प कॉलम है।सार कक्षा विरासत के साथ जेपीए इकाई
public abstract class AbstractEntity {
...
private long lastModified;
...
@Column
public long getLastModified() {
return lastModified;
}
public void setLastModified(long ts) {
lastModified = ts;
}
}
और
@Table
@Entity
public class MyEntity extends AbstractEntity {
...
private Long key;
private String value;
...
@Id
public Long getKey() {
return key;
}
public void setKey(Long k) {
key = k;
}
@Column
public String getValue() {
return value;
}
public void setValue(String txt) {
value = txt;
setLastModified(System.currentTimeMillis());
}
}
मुद्दा यह है कि टाइमस्टैम्प स्तंभ डेटाबेस तालिका में जोड़ा नहीं जा रहा है। क्या अंतिम एनोडिफाइड फ़ील्ड को स्तंभ के रूप में विरासत में प्राप्त करने के लिए कुछ एनोटेशन है जिसे सार तत्व में जोड़ा जाना आवश्यक है?
मैंने AbentEntity में @Entity जोड़ने का प्रयास किया लेकिन इससे तैनाती पर अपवाद हुआ।
org.hibernate.AnnotationException: No identifier specified for entity:
AbstractEntity
बहुत धन्यवाद आपको कोस्टा - '@ मैप्डसुपरक्लास' एनोटेशन केवल वह समाधान था जिसे मैं ढूंढ रहा था। – Dobbo
आपका स्वागत है :) आपके कोड में मैंने एक और चीज़ देखी है, शायद आपको यह उपयोगी लगेगा - संपादन देखें। – kostja
फिर से धन्यवाद कोस्टा - आपका संपादन बिल्कुल ठीक है जहां मैं जा रहा था। जैसे ही ऐसा होता है मुझे खुद को 'अंतिम मॉडोडिफाइड' को संशोधित करना होगा (कुछ) इकाई वस्तुओं को क्लाइंट के साथ साझा किया जाता है और डेटा एक्सएमएल और जेएक्सबी के माध्यम से पहुंचाया जाता है। – Dobbo