diff options
| author | Dominic Rogetzer <e1627756@student.tuwien.ac.at> | 2018-06-19 16:51:54 +0200 | 
|---|---|---|
| committer | Dominic Rogetzer <e01627756@student.tuwien.ac.at> | 2018-06-19 16:51:54 +0200 | 
| commit | 2244bd4a51eedda216d6bc822f4e07008239944b (patch) | |
| tree | 8b46b70138586904720210c45b24e7caa69efe73 | |
| parent | ba18fafe3daca828719b95f0b0efeae6683afd3d (diff) | |
| download | sepm-groupproject-2244bd4a51eedda216d6bc822f4e07008239944b.tar.gz sepm-groupproject-2244bd4a51eedda216d6bc822f4e07008239944b.tar.xz sepm-groupproject-2244bd4a51eedda216d6bc822f4e07008239944b.zip | |
Fix versioning problem where wrong cars showed up in op-detail [#25963]
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();      }  } | 
