मैंने अंततः यह "काम" किया - एक हैकिश तरीके से - स्कीमा सत्यापन को बंद करके।
पहले, मेरे पास <property name="hibernate.hbm2ddl.auto" value="validate"/>"hibernate.hbm2ddl.auto"
था मेरे हठ में.xml. जब मैंने इस संपत्ति पर टिप्पणी की, तो मेरा ऐप सर्वर शुरू हो गया और मॉडल "काम कर गया"।
मेरी इकाई का अंतिम रूप था:
@Entity
@Table(schema = "content", name = "theme")
public class Theme extends AbstractBaseEntity {
private static final long serialVersionUID = 1L;
@Column(name = "run_from", columnDefinition = "timestamp with time zone not null")
@NotNull
@Temporal(TemporalType.TIMESTAMP)
private Date runFrom;
@Column(name = "run_to", columnDefinition = "timestampt with time zone not null")
@NotNull
@Temporal(TemporalType.TIMESTAMP)
private Date runTo;
/* Getters, setters, .hashCode(), .equals() etc omitted */
इस पर काफी कुछ पढ़ने के बाद, मुझे यह आभास हुआ कि पोस्टग्रेस्क्ल टाइमस्टैम्प को टाइम ज़ोन कॉलम के साथ मैप करने का कोई आसान तरीका नहीं है।
कुछ जेपीए कार्यान्वयन + डेटाबेस संयोजन मूल रूप से इसका समर्थन करते हैं (एक्लिप्सलिंक + ओरेकल एक उदाहरण है)। हाइबरनेट के लिए, जोडाटाइम एक्सटेंशन के साथ, टाइमज़ोन के लिए एक सामान्य टाइमस्टैम्प + वर्चर फ़ील्ड का उपयोग करके टाइमज़ोन जागरूक टाइमस्टैम्प को स्टोर करना संभव है (मैं ऐसा नहीं कर सका क्योंकि मुझे डेटाबेस स्कीमा बदलने से विवश किया गया था)। जादिरा उपयोगकर्ता प्रकार या इस समस्या से निपटने के लिए पूरी तरह से कस्टम उपयोगकर्ता प्रकारों का भी उपयोग किया जा सकता है।
मुझे यह ध्यान रखना होगा कि इस इकाई के लिए मेरा उपयोग-मामला "केवल पढ़ने के लिए" है, इसलिए मैं एक प्रतीत होता है बेवकूफ "समाधान" से दूर हो सकता हूं।