From 505c7dbdd8d2de827eefba8007463fb314a0f1a0 Mon Sep 17 00:00:00 2001
From: Martin Weick <e1627760@student.tuwien.ac.at>
Date: Wed, 23 May 2018 12:45:35 +0200
Subject: Fix VehicleVersion Id #25963

---
 .../einsatzverwaltung/dao/VehicleDatabaseDao.java  | 26 +++++++++++++---------
 1 file changed, 16 insertions(+), 10 deletions(-)

(limited to 'src/main/java/at')

diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java
index 7e0f494..808e7e7 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java
@@ -33,6 +33,7 @@ public class VehicleDatabaseDao implements VehicleDAO {
         String status = "ABGEMELDET";
         String name = "";
         int id = -1;
+        int version = -1;
         try {
             Connection connection = jdbcConnectionManager.getConnection();
             connection.setAutoCommit(false);
@@ -46,9 +47,21 @@ public class VehicleDatabaseDao implements VehicleDAO {
                 p1.setString(4, vehicle.type().name());
 
                 p1.executeUpdate();
-
                 try (ResultSet keyResultSet = p1.getGeneratedKeys()) {
 
+                    if (keyResultSet.next()) {
+                        version = keyResultSet.getInt(1);
+                    }
+                }
+            }
+            try (PreparedStatement p2 =
+                    connection.prepareStatement(query2, Statement.RETURN_GENERATED_KEYS)) {
+
+                p2.setInt(1, version);
+                p2.setString(2, status);
+                p2.executeUpdate();
+                try (ResultSet keyResultSet = p2.getGeneratedKeys()) {
+
                     if (keyResultSet.next()) {
                         id = keyResultSet.getInt(1);
                     }
@@ -56,20 +69,13 @@ public class VehicleDatabaseDao implements VehicleDAO {
 
                 name = vehicle.type().name() + "-" + id;
             }
-
             query1 = "UPDATE VehicleVersion SET name=? WHERE id=?";
             try (PreparedStatement p3 = connection.prepareStatement(query1)) {
                 p3.setString(1, name);
-                p3.setInt(2, id);
+                p3.setInt(2, version);
                 p3.executeUpdate();
             }
 
-            try (PreparedStatement p2 = connection.prepareStatement(query2)) {
-
-                p2.setInt(1, id);
-                p2.setString(2, status);
-                p2.executeUpdate();
-            }
             connection.commit();
             connection.setAutoCommit(true);
         } catch (SQLException e) {
@@ -125,7 +131,7 @@ public class VehicleDatabaseDao implements VehicleDAO {
                     throw new ElementNotFoundException("Vehicle don“t found");
                 }
             }
-            name = vehicle.type().name() + "-" + vehicleVersion;
+            name = vehicle.type().name() + "-" + vehicleID;
 
             query = "UPDATE VehicleVersion SET name=? WHERE id=?";
             try (PreparedStatement p = connection.prepareStatement(query)) {
-- 
cgit v1.2.3-70-g09d2