Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Penanganan pengecualian EntityManager di kacang sesi

Saya punya saran yang saya gunakan dalam aplikasi saya. Kami dapat mengambil SQLException dari PersistenceException . Setelah itu, coba dapatkan sql error code untuk SQLException . Jika kebutuhan Anda adalah untuk mendapatkan sql error code , Anda dapat mengikuti contoh saya;

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";
}

Contoh konfigurasi kode kesalahan 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 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tips Berguna untuk Memecahkan Kesalahan Umum di MySQL

  2. Cara Menghitung Pengguna Aktif Mingguan (WAU) di MySQL

  3. Tidak dapat mengakses database mysql (berjalan pada instance AWS) dari aplikasi Java saya

  4. Bagaimana cara mengambil catatan pertama dan terakhir dari catatan yang dikelompokkan dalam kueri MySQL dengan fungsi agregat?

  5. Nomor parameter tidak valid, PDO pada pembaruan duplikat gagal