From f19acc875f28a0df0902badf4389d13464809eac Mon Sep 17 00:00:00 2001 From: Jim Martens Date: Wed, 26 Apr 2017 15:19:48 +0200 Subject: [PATCH] Made delete estate method atomic Signed-off-by: Jim Martens --- 02/src/de/dis2017/data/db/ORM.java | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/02/src/de/dis2017/data/db/ORM.java b/02/src/de/dis2017/data/db/ORM.java index a971233..d42ac4d 100644 --- a/02/src/de/dis2017/data/db/ORM.java +++ b/02/src/de/dis2017/data/db/ORM.java @@ -692,12 +692,25 @@ public class ORM { return; } else { // create query - String deleteSQL = "DELETE FROM HOUSE WHERE ID = ?"; - delete(deleteSQL, estate.getId()); - deleteSQL = "DELETE FROM APARTMENT WHERE ID = ?"; - delete(deleteSQL, estate.getId()); - deleteSQL = "DELETE FROM ESTATE WHERE ID = ?"; - delete(deleteSQL, estate.getId()); + try { + _connection.setAutoCommit(false); + String deleteSQL = "DELETE FROM HOUSE WHERE ID = ?"; + delete(deleteSQL, estate.getId()); + deleteSQL = "DELETE FROM APARTMENT WHERE ID = ?"; + delete(deleteSQL, estate.getId()); + deleteSQL = "DELETE FROM ESTATE WHERE ID = ?"; + delete(deleteSQL, estate.getId()); + _connection.commit(); + _connection.setAutoCommit(true); + } + catch (SQLException e) { + try { + _connection.rollback(); + } catch (SQLException e1) { + e1.printStackTrace(); + } + e.printStackTrace(); + } } if (_estates.containsKey(estate.getId())) { _estates.remove(estate.getId(), estate);