मेरे पास एक चल रहा ऐप वसंत बूट 1.3 + हाइबरनेट 5 + जावा 8 + ज़ोनडडेट टाइम + पोस्टग्रेस्क्ल है और तालिकाओं में से एक में मेरे पास निम्न फ़ील्ड हैं।हाइबरनेट 5 + ज़ोनडडेट टाइम + पोस्टग्रेस्क्ल इनलक्यूड टाइम जोन और ऑफ़सेट
@Column(name = "DATE_ENABLED")
@Type(type="java.time.ZonedDateTime")
private ZonedDateTime dateEnabled;
@Column(name = "DATE_DISABLED")
@Type(type="java.time.ZonedDateTime")
private ZonedDateTime dateDisabled;
मैं तो अनुप्रयोग चलाने तो मैं देखता हूँ कि यह डिफ़ॉल्ट रूप से पैदा करता है "टाइमस्टैम्प समय क्षेत्र के बिना"
testDB=# \d type
Table "public.type"
Column | Type | Modifiers
--------------------------------+-----------------------------+-----------
type_id | bytea | not null
date_disabled | timestamp without time zone |
date_enabled | timestamp without time zone |
मुझे पता है कि अगर मैं करने के लिए "समय क्षेत्र के साथ TIMESTAMP" columnDefinition = जोड़ने
@Column(name = "DATE_DISABLED", columnDefinition= "TIMESTAMP WITH TIME ZONE")
तरह स्तंभ यानी कुछ तो इसे सही ढंग से काम करता है और मैं यह देखने के लिए कि हाइबरनेट समय क्षेत्र के साथ एक स्तंभ बनाया सक्षम हूँ, लेकिन अगर मैं इस बात को समझ सही ढंग से यह केवल postgre के लिए काम किया जाएगा यानी अगर मैं कल डेटाबेस को mysql में बदलता हूं तो हाइबरनेट एक त्रुटि फेंक देगा।
इस प्रकार मेरा प्रश्न यह है कि सामान्य रूप से ऐसा करने के लिए कैसे एक कॉलम बनाने के लिए हाइबरनेट को बताने के लिए जिसमें समय क्षेत्र और ऑफसेट शामिल होना चाहिए। मेरी राय थी कि जब जावा प्रकार "ज़ोनडडेट टाइम" को समय क्षेत्र और यूटीसी में समय ऑफसेट शामिल करने के लिए डिलीबेरेटली बनाया गया है, तो हाइबरनेट डिफ़ॉल्ट रूप से एक कॉलम बना देगा जिसमें समय क्षेत्र शामिल होगा। इस प्रकार सवाल फिर से समय क्षेत्र और ऑफसेट को शामिल करने के लिए हाइबरनेट को बताने का उचित तरीका क्या है।
यहाँ मेरी पोम
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.0.RELEASE</version>
<hibernate.version>5.0.4.Final</hibernate.version>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
<version>${hibernate.version}</version>
</dependency>
और मेरे गुण के हिस्से हैं बोली
@Bean
public Properties hibernateProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect");
setProperty("hibernate.chach.provider_class", "org.hibernate.cache.NoCacheProvider");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.hbm2ddl.auto", "create-drop");
}
};
}