diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java | 31 |
1 files changed, 10 insertions, 21 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java index 8c8d8b2..74e407f 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java @@ -85,6 +85,7 @@ public class EmployeeDatabaseDAO implements EmployeeDAO { try (ResultSet resultSetEmployee = insertEmployee.getGeneratedKeys()) { if (resultSetEmployee.next()) { connection.commit(); + connection.setAutoCommit(true); return resultSetEmployee.getLong(1); } } @@ -94,20 +95,8 @@ public class EmployeeDatabaseDAO implements EmployeeDAO { throw new PersistenceException("Employee was not updated"); } catch (SQLException e) { - try { - if (savepoint != null) { - connection.rollback(savepoint); - } - } catch (SQLException e1) { - throw new PersistenceException(e); - } + rollbackAndEnableAutoCommit(savepoint); throw new PersistenceException(e); - } finally { - try { - connection.setAutoCommit(true); - } catch (SQLException e) { - throw new PersistenceException(e); - } } } @@ -137,6 +126,7 @@ public class EmployeeDatabaseDAO implements EmployeeDAO { if (affectedRows == 1) { connection.commit(); + connection.setAutoCommit(true); } else { throw new ElementNotFoundException( "element not found with id: " + employee.id()); @@ -145,16 +135,15 @@ public class EmployeeDatabaseDAO implements EmployeeDAO { } } catch (SQLException e) { - try { - if (savepoint != null) { - connection.rollback(savepoint); - } - } catch (SQLException e1) { - throw new PersistenceException(e); - } + rollbackAndEnableAutoCommit(savepoint); throw new PersistenceException(e); - } finally { + } + } + + private void rollbackAndEnableAutoCommit(Savepoint savepoint) throws PersistenceException { + if (savepoint != null) { try { + connection.rollback(savepoint); connection.setAutoCommit(true); } catch (SQLException e) { throw new PersistenceException(e); |