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

Oracle 10g का उपयोग करते समय फ्लोटिंग पॉइंट कॉलम के हाइबरनेट के स्कीमा सत्यापन के साथ ज्ञात समस्याओं के लिए सबसे अच्छा समाधान क्या हैं?

यह एक ज्ञात सीमा है स्कीमा सत्यापनकर्ता की, HHH-2315 जांचें . तो आपके पास यहां तीन विकल्प हैं (वास्तव में चार लेकिन मुझे लगता है कि सत्यापन को निष्क्रिय करना नहीं चाहता है)। या तो:

  • एक float का प्रयोग करें double . के बजाय जावा स्तर पर - हालांकि यह एक विकल्प नहीं हो सकता है।

  • पैच org.hibernate.mapping.Table.validateColumns(Dialect dialect, Mapping mapping, TableMetadata tableInfo) इस विशेष मामले के लिए एक विशेष शर्त जोड़ने के लिए - यह वास्तव में एक हल्का विकल्प नहीं है।

  • org.hibernate.dialect.Oracle10gDialect . का विस्तार करता है इसका उपयोग करने के लिए float SQL प्रकार के लिए DOUBLE

    public class MyOracle10gDialect extends Oracle10gDialect {
        public MyOracle10gDialect() {
            super();
        }
        protected void registerNumericTypeMappings() {
            super.registerNumericTypeMappings();
            registerColumnType( Types.DOUBLE, "float" );
        }
    }
    

बाद का विकल्प सुरक्षित लगता है, लेकिन यह देखने के लिए कुछ परीक्षण की आवश्यकता होगी कि क्या यह किसी प्रतिगमन का परिचय नहीं देता है। मैंने Oracle के JDBC ड्राइवर कोड को नहीं देखा, इसलिए मैं यह नहीं कह सकता कि कैसे float और double precision ड्राइवर स्तर पर भिन्न।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रेगेक्स का उपयोग करके tnsnames.ora को पार्स करना

  2. गिनती अधिकतम स्थिति के साथ चयन के रूप में Oracle तालिका बनाएं

  3. प्रक्रिया के अंदर तालिका बनाएं

  4. ओरेकल में 'सिंगल कोट' का अनुमान और बचाव कैसे करें?

  5. ईबीएस वेबलॉजिक डोमेन R12.2 . के खो जाने या भूल जाने वाले एडमिन पासवर्ड को बदलने के चरण