diff options
Diffstat (limited to 'src/main/java/at/ac/tuwien/sepm/assignment')
| -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);  | 
