2016-04-20 27 views
9

हाइबरनेट 5.1 स्थानिक के लिए प्रलेखन अभी तक जारी नहीं किया गया है (AFAIK) और मैं जेएसटी ज्यामिति फ़ील्ड के साथ इकाइयों को पोस्टग्रेएसक्यूएल 9.5 + पोस्टगिस 2.2 में बिना किसी किस्मत के बने रहने की कोशिश कर रहा हूं।पोस्टगिस 2.2 के साथ हाइबरनेट 5.1 2.2 ज्यामिति कॉलम मैपिंग

मैंने यह भी देखा है कि हाइबरनेट-कोर-5.1.0 में कोई org.hibernate.spatial पैकेज नहीं है। मैं निम्नलिखित एनोटेशन के रूपांतरों की कोशिश की है:

@javax.persistence.Column(name = "the_geom", columnDefinition = "Geometry") 
public com.vividsolutions.jts.geom.Geometry geom; 

जब columnDefinition करने के लिए "प्वाइंट" मैं "कॉलम" the_geom सेट किया गया है "प्रकार बिंदु के है, लेकिन अभिव्यक्ति प्रकार bytea की है।" स्थानिक 4 दस्तावेज हाइबरनेट में यह कहा जाता है कि 5+ रिलीज से @ टाइप एनोटेशन की आवश्यकता नहीं होगी, लेकिन इसके बजाय इसका क्या उपयोग किया जाना चाहिए? जिओम को वैध पोस्टगिस ज्यामिति के रूप में कैसे स्टोर करें?

+0

हाय @ मिहाई मेरे पास एक ही कॉन्फ़िगरेशन और निर्भरताओं के साथ एक ही समस्या है। मैं बिना किसी परिणाम के थोड़ी देर के लिए खोज करता हूं, क्या आपने कम से कम किसी भी चीज को खोज लिया है जो इस मुद्दे का कारण है? – Dario

+0

हाय @ डारियो, समय की कमी के कारण मैंने इस पल के लिए 4.3 को हाइबरनेट करने के लिए डाउनग्रेड किया। मैं आधिकारिक दस्तावेज उपलब्ध होने की प्रतीक्षा कर रहा हूं। –

उत्तर

0

थोड़ी देर के लिए खोज करने के बाद मुझे एक समाधान मिला जो मेरी ज़रूरतों को फिट करता है (मैं भी तुम्हारा उम्मीद कर रहा हूं)। इस तथ्य के कारण कि संस्करण 5 के साथ सभी jts और geolatte ज्यामिति प्रकार सीधे हाइबरनेट द्वारा प्रबंधित किए जाने में सक्षम हैं, आपको उन प्रकारों को प्रबंधित करने के लिए हाइबरनेट को कॉन्फ़िगर करना चाहिए। इस प्रकार के रूप में "उदाहरण 9" here की मैं MetadataBuilder दृष्टिकोण का उपयोग करने का निर्णय लिया में दिखाया गया है वहाँ,:

@Bean 
public static MetadataBuilder metadataBuilder() { 

    ServiceRegistry standardRegistry = new StandardServiceRegistryBuilder().build(); 
    MetadataSources sources = new MetadataSources(standardRegistry); 
    return sources.getMetadataBuilder(); 
} 

@Bean 
public static MetadataBuilder spatialConfiguration() { 

    JTSGeometryType jtsGeometryType = new JTSGeometryType(PGGeometryTypeDescriptor.INSTANCE); 
    return PersistenceConfiguration.metadataBuilder().applyBasicType(jtsGeometryType); 
} 

में

मेरी परिदृश्य में मैं एक वसंत @Configuration कक्षा में सभी विन्यास प्रबंधन इस तरह मेरे सभी jts ज्यामिति (geolatte ज्यामिति org.hibernate.spatial.GeolatteGeometryType) के लिए अन्य भी है, मेरे डेटाबेस मॉडल में घोषित होने के रूप में सही ढंग से मैप किया गया है।

उम्मीद है कि यह आपकी मदद कर सकता है,

डारियो।

+0

मैंने इस पल के लिए हाइबरनेट 4.3 के साथ चिपकने का फैसला किया, और मैंने अभी तक आपके समाधान का परीक्षण नहीं किया है। मैं निकट भविष्य में 5. * माइग्रेट कर दूंगा और इसे सत्यापित/उत्तर स्वीकार कर दूंगा। धन्यवाद। –

+0

WITH 5.2.3. हाइबरनेट जेटीएस ज्यामिति का अंतिम संस्करण अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता के बिना डिफ़ॉल्ट रूप से समर्थित है। मैं जेटीएस 1.13 संस्करण का उपयोग कर रहा हूँ। –