From 68d85ab02777e30d74637291de7a2e9d8e861306 Mon Sep 17 00:00:00 2001
From: Dominic Rogetzer <e1627756@student.tuwien.ac.at>
Date: Wed, 23 May 2018 23:42:28 +0200
Subject: Fix vehicle-dao [#25963]

1) set registrations in vehicleFromRS
2) side-fix: change 'version' to 'id' in update method as they were previously swapped. Same fix was done today in add method, but not in update
---
 .../einsatzverwaltung/dao/VehicleDatabaseDao.java          | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

(limited to 'src')

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 808e7e7..89a3aca 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
@@ -20,9 +20,12 @@ import org.springframework.stereotype.Repository;
 public class VehicleDatabaseDao implements VehicleDAO {
 
     private final JDBCConnectionManager jdbcConnectionManager;
+    private RegistrationDatabaseDAO registrationDatabaseDao;
 
-    public VehicleDatabaseDao(JDBCConnectionManager j) {
+    public VehicleDatabaseDao(
+            JDBCConnectionManager j, RegistrationDatabaseDAO registrationDatabaseDao) {
         jdbcConnectionManager = j;
+        this.registrationDatabaseDao = registrationDatabaseDao;
     }
 
     public long add(Vehicle vehicle) throws PersistenceException {
@@ -86,7 +89,7 @@ public class VehicleDatabaseDao implements VehicleDAO {
 
     @Override
     public void update(Vehicle vehicle) throws ElementNotFoundException, PersistenceException {
-        String query = "SELECT id FROM vehicle WHERE version=?";
+        String query = "SELECT * FROM vehicle WHERE id=?";
 
         long vehicleID = -1;
         long vehicleVersion = -1;
@@ -100,7 +103,7 @@ public class VehicleDatabaseDao implements VehicleDAO {
                 p.executeQuery();
                 try (ResultSet rs = p.getResultSet()) {
                     while (rs.next()) {
-                        vehicleID = rs.getLong(1);
+                        vehicleID = rs.getLong("id");
                     }
                 }
             }
@@ -203,14 +206,15 @@ public class VehicleDatabaseDao implements VehicleDAO {
     @Override
     public void remove(long id) throws ElementNotFoundException, PersistenceException {}
 
-    private Vehicle vehicleFromRS(ResultSet rs) throws SQLException {
+    private Vehicle vehicleFromRS(ResultSet rs) throws SQLException, PersistenceException {
         return Vehicle.builder()
-                .id(rs.getLong("id"))
+                .id(rs.getLong("Vehicle.id"))
                 .name(rs.getString("name"))
                 .constructionType(ConstructionType.values()[rs.getInt("constructionType")])
                 .type(VehicleType.valueOf(rs.getString("type")))
                 .status(Status.values()[rs.getInt("status")])
                 .hasNef(rs.getBoolean("hasNef"))
+                .registrations(registrationDatabaseDao.list(rs.getLong("id")))
                 .build();
     }
 }
-- 
cgit v1.2.3-70-g09d2