PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostGIS कनेक्शन परिभाषित होने पर Oracle कनेक्शन नहीं मिल रहा है

जैसा कि टिप्पणी की गई है, यह मुझे लगता है कि हाइबरनेट एक स्थानिक बोली के लिए डिफ़ॉल्ट होगा जो कि उपलब्ध से पहली बार मिलेगा, और उस स्थिति में यह ओरेकल था, जो भी दृढ़ता में निर्दिष्ट किया गया था। एक्सएमएल।

पहला समाधान जो मैंने पाया वह इकाई में यह व्याख्या करना था कि GeometryUserType के लिए मैं Postgis बोली का उपयोग इस प्रकार करूंगा:

@TypeDefs({@TypeDef(name="org.hibernatespatial.GeometryUserType", 
        parameters={@org.hibernate.annotations.Parameter(name="dialect",value="org.hibernatespatial.postgis.PostgisDialect")},
        typeClass=org.hibernatespatial.GeometryUserType.class)})

यह हाइबरनेट को उस इकाई के लिए पोस्टगिस का उपयोग करने के लिए मजबूर करेगा।

दूसरा समाधान, जिसने मेरे लिए बेहतर काम किया (मुझे इसे कॉन्फ़िगर करने और दृढ़ता इकाई और पर्यावरण के आधार पर एक इकाई के लिए विभिन्न बोलियों का उपयोग करने में सक्षम होना चाहिए) दृढ़ता इकाई में मैपिंग फ़ाइल का उपयोग करना है।

<persistence-unit name="persistence_unit_name" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>jta_data_source_name</jta-data-source>
    <mapping-file>${hibernate.mappingfile}</mapping-file>
    <class>(...)</class>

मेरी पोम फ़ाइल में, मैं मैवेन प्रोफाइल और वेरिएबल्स का उपयोग करके उस मैपिंग फ़ाइल को उस मैपिंग फ़ाइल को बना दूंगा जिसकी मुझे आवश्यकता है।

<hibernate.mappingfile>oracle.hbm.xml</hibernate.mappingfile>

या:

<hibernate.mappingfile>postgis.hbm.xml</hibernate.mappingfile>

इसलिए मेरे पास उदाहरण के लिए एक postgis.hbm.xml . होगा फ़ाइल:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
 "-//Hibernate/Hibernate Mapping DTD//EN"
 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping>
    <typedef name="org.hibernatespatial.GeometryUserType" class="org.hibernatespatial.GeometryUserType" >
        <param name="dialect">org.hibernatespatial.postgis.PostgisDialect</param>
    </typedef>
</hibernate-mapping>

और एक oracle.hbm.xml :

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
 "-//Hibernate/Hibernate Mapping DTD//EN"
 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping>
    <typedef name="org.hibernatespatial.GeometryUserType" class="org.hibernatespatial.GeometryUserType" >
        <param name="dialect">org.hibernatespatial.oracle.OracleSpatial10gDialect</param>
    </typedef>
</hibernate-mapping>

मुझे आश्चर्य है कि ऐसा करने का कोई बेहतर तरीका है, लेकिन इन दिनों के दौरान मुझे कोई भी नहीं मिला, या मुझे यहां उत्तर दिया गया। आशा है कि यह किसी की मदद करता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres . में एक अंतराल में एक चर अवधि का उपयोग करना

  2. मैं django - postgresql में डीबी अखंडता बाधाओं को अस्थायी रूप से अक्षम कैसे करूं?

  3. JSON पंक्तियों को संयोजित करें

  4. रेडियो बटन एनजी-मॉडल के साथ एनजी-चेक किया गया

  5. फ्लाईवे के साथ डेटाबेस कैसे बनाएं?