यह एक ज्ञात सीमा है स्कीमा सत्यापनकर्ता की, HHH-2315 जांचें . तो आपके पास यहां तीन विकल्प हैं (वास्तव में चार लेकिन मुझे लगता है कि सत्यापन को निष्क्रिय करना नहीं चाहता है)। या तो:
-
एक
floatका प्रयोग करेंdouble. के बजाय जावा स्तर पर - हालांकि यह एक विकल्प नहीं हो सकता है। -
पैच
org.hibernate.mapping.Table.validateColumns(Dialect dialect, Mapping mapping, TableMetadata tableInfo)इस विशेष मामले के लिए एक विशेष शर्त जोड़ने के लिए - यह वास्तव में एक हल्का विकल्प नहीं है। -
org.hibernate.dialect.Oracle10gDialect. का विस्तार करता है इसका उपयोग करने के लिएfloatSQL प्रकार के लिएDOUBLEpublic class MyOracle10gDialect extends Oracle10gDialect { public MyOracle10gDialect() { super(); } protected void registerNumericTypeMappings() { super.registerNumericTypeMappings(); registerColumnType( Types.DOUBLE, "float" ); } }
बाद का विकल्प सुरक्षित लगता है, लेकिन यह देखने के लिए कुछ परीक्षण की आवश्यकता होगी कि क्या यह किसी प्रतिगमन का परिचय नहीं देता है। मैंने Oracle के JDBC ड्राइवर कोड को नहीं देखा, इसलिए मैं यह नहीं कह सकता कि कैसे float और double precision ड्राइवर स्तर पर भिन्न।