मेरे पास एक सुझाव है जिसका मैं अपने आवेदन में उपयोग करता हूं। हम SQLException
को पुनः प्राप्त कर सकते हैं PersistenceException
. से . उसके बाद, sql error code
प्राप्त करने का प्रयास करें SQLException
के लिए . यदि आपकी आवश्यकता sql error code
प्राप्त करने की है , आप मेरे उदाहरण का अनुसरण कर सकते हैं;
public void insert(Group group) throws DAOException {
try {
//your operation
em.flush();
logger.debug("insert() method has been successfully finisehd.");
} catch (PersistenceException pe) {
String sqlErroCode = getErrorCode(pe);
// do your operation based on sql errocode
}
}
protected String getErrorCode(RuntimeException e) {
Throwable throwable = e;
while (throwable != null && !(throwable instanceof SQLException)) {
throwable = throwable.getCause();
}
if (throwable instanceof SQLException) {
Properties properties = --> load sql error code form configuration file.
SQLException sqlex = (SQLException) throwable;
String errorCode = properties.getProperty(sqlex.getErrorCode() + "");
return errorCode;
}
return "NONE";
}
mysql का उदाहरण त्रुटि कोड कॉन्फ़िगरेशन
mysql_error_code.properties
#MySQL Database
1062=DUPLICATE_KEY_FOUND
1216=CHILD_RECORD_FOUND
1217=PARENT_RECORD_NOT_FOUND
1048=NULL_VALUE_FOUND
1205=RECORD_HAS_BEEN_LOCKED