aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/at
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDAO.java31
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);