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

PostgreSql में JDBCTemplate बैचअपडेट का उपयोग करके त्रुटि रिकॉर्ड कैसे कैप्चर करें?

आपको BatchUpdateException नहीं मिलता है , क्योंकि आप उपयोग कर सकते हैं SQLErrorCodeSQLExceptionTranslator jdbcTemplate . में , जो BatchUpdateException . को संभालता है रों एक विशेष तरीके से :

if (sqlEx instanceof BatchUpdateException && sqlEx.getNextException() != null) {
    SQLException nestedSqlEx = sqlEx.getNextException();
    if (nestedSqlEx.getErrorCode() > 0 || nestedSqlEx.getSQLState() != null) {
        sqlEx = nestedSqlEx;
    }
}

इसके बारे में एक समस्या है:

यदि आप SQLStateSQLExceptionTranslator :

jdbcTemplate.setExceptionTranslator(new SQLStateSQLExceptionTranslator());

फिर आपको BatchUpdateException मिलेगा एक cause . के रूप में :

try {
    // ...
} catch (DataAccessException e) {
    Throwable cause = e.getCause();
    logger.info("cause instanceof BatchUpdateException = {}", cause instanceof BatchUpdateException);
 }

लेकिन ध्यान दें कि postgresql jdbc ड्राइवर के मामले में BatchUpdateException#getUpdateCounts() इसमें EXECUTE_FAILED केवल, इस तथ्य के बावजूद कि कुछ पंक्ति को सफलतापूर्वक सम्मिलित किया जा सकता है।

देखें यह मुद्दा




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. plpgsql फ़ंक्शन से पंक्तियों का रिटर्निंग सेट।

  2. हाइबरनेट डेटाबेस में ऑब्जेक्ट को सहेज नहीं रहा है?

  3. एक बड़े Django QuerySet के माध्यम से बड़ी मात्रा में स्मृति का उपभोग क्यों कर रहा है?

  4. मैं Linux टर्मिनल का उपयोग करके PostgreSQL में SQL फ़ाइल कैसे चला सकता हूँ?

  5. पोस्टग्रेस्क्ल के साथ उल्का का उपयोग करना