diff options
3 files changed, 12 insertions, 9 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDatabaseDAO.java index d06e13f..53682f9 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDatabaseDAO.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/OperationDatabaseDAO.java @@ -221,21 +221,24 @@ public class OperationDatabaseDAO implements OperationDAO { } } catch (SQLException e) { throw new PersistenceException(e); - } /*catch (ElementNotFoundException e) { - throw new PersistenceException("VehicleOperation contained nonexistent vehicle", e); - }*/ + } catch (ElementNotFoundException e) { + throw new PersistenceException("VehicleOperation contained nonexistent vehicle", e); + } return vehicles; } - private Vehicle vehicleFromRS(ResultSet rs) throws SQLException, PersistenceException { + private Vehicle vehicleFromRS(ResultSet rs) + throws SQLException, PersistenceException, ElementNotFoundException { + String name = rs.getString("VehicleVersion.name"); + long vehicleId = Long.parseLong(name.split("-")[1]); return Vehicle.builder() - .id(rs.getLong("VehicleVersion.id")) + .id(vehicleId) .name(rs.getString("VehicleVersion.name")) .constructionType( ConstructionType.values()[rs.getInt("VehicleVersion.constructionType")]) .type(VehicleType.valueOf(rs.getString("VehicleVersion.type"))) - .status(Vehicle.Status.ABGEMELDET) + .status(vehicleDAO.get(vehicleId).status()) .hasNef(rs.getBoolean("VehicleVersion.hasNef")) .registrations(registrationDAO.list(rs.getLong("VehicleVersion.id"))) .build(); diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java index b08ee68..90fbc2c 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java @@ -83,7 +83,7 @@ public class RegistrationDatabaseDAO implements RegistrationDAO { con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) { // vehicleId is a Vehicle.id as it comes from GUI => fetch VehicleVersion.id - pstmt.setLong(1, getVehicleVersionId(vehicleId) /*vehicleId*/); + pstmt.setLong(1, getVehicleVersionId(vehicleId)); for (Registration r : registrations) { pstmt.setLong(2, getEmployeeVersionId(r.employee().id())); diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/VehicleDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/VehicleDatabaseDAO.java index eb3cc61..8cef65e 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/VehicleDatabaseDAO.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/VehicleDatabaseDAO.java @@ -170,7 +170,7 @@ public class VehicleDatabaseDAO implements VehicleDAO { @Override public Vehicle get(long id) throws ElementNotFoundException, PersistenceException { String sql = - "SELECT a.id, b.name, b.constructionType, b.type, a.status, b.hasNef" + "SELECT *" + " FROM Vehicle a" + " INNER JOIN VehicleVersion b" + " ON version = b.id" @@ -205,7 +205,7 @@ public class VehicleDatabaseDAO implements VehicleDAO { .type(VehicleType.valueOf(rs.getString("type"))) .status(Status.values()[rs.getInt("status")]) .hasNef(rs.getBoolean("hasNef")) - .registrations(registrationDatabaseDao.list(rs.getLong("Vehicle.id"))) + .registrations(registrationDatabaseDao.list(rs.getLong("Vehicle.version"))) .build(); } } |