diff options
author | Felix Kehrer <felix.kehrer@gmail.com> | 2018-05-23 12:25:51 +0200 |
---|---|---|
committer | Felix Kehrer <felix.kehrer@gmail.com> | 2018-05-23 12:25:51 +0200 |
commit | d13cee465d399895668a88edc34a30a4d0a380c5 (patch) | |
tree | 8367d590ba1500402fcf914890f2a78f3b522203 /src/main | |
parent | 694c5f3e6b5b260298af91a6d9d1b63dbc9e6231 (diff) | |
download | sepm-groupproject-d13cee465d399895668a88edc34a30a4d0a380c5.tar.gz sepm-groupproject-d13cee465d399895668a88edc34a30a4d0a380c5.tar.xz sepm-groupproject-d13cee465d399895668a88edc34a30a4d0a380c5.zip |
Fix problem where listing operations would throw exception, downgrading h2 to 1.4.196 because of bug in .197 #24993
Diffstat (limited to 'src/main')
2 files changed, 13 insertions, 7 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java index bb6fb27..1fcdc2e 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/DBOperationDAO.java @@ -221,16 +221,22 @@ public class DBOperationDAO implements OperationDAO { @Override public Set<Operation> list(EnumSet<Status> statuses) throws PersistenceException { - String sql = "SELECT * FROM Operation WHERE status IN (?)"; + StringBuilder listString = new StringBuilder("SELECT * FROM Operation WHERE status IN ("); + boolean first = true; + for (Status status : statuses) { + if (first) { + first = false; + } else { + listString.append(", "); + } + listString.append("\'" + status.name() + "\'"); + } + listString.append(") ;"); Set<Operation> operations = new HashSet<>(); try { Connection con = jdbcConnectionManager.getConnection(); - - try (PreparedStatement pstmt = con.prepareStatement(sql)) { - Object[] arr = statuses.stream().map(Enum::ordinal).toArray(); - pstmt.setArray(1, con.createArrayOf("INTEGER", arr)); - + try (PreparedStatement pstmt = con.prepareStatement(listString.toString())) { try (ResultSet rs = pstmt.executeQuery()) { while (rs.next()) operations.add(operationFromRS(rs)); } diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/RegistrationDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/RegistrationDatabaseDAO.java index 13aeffc..5c00447 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/RegistrationDatabaseDAO.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/RegistrationDatabaseDAO.java @@ -56,7 +56,7 @@ public class RegistrationDatabaseDAO implements RegistrationDAO { addRegistration.setLong(1, vehicleId); addRegistration.setLong(2, registration.employee().id()); addRegistration.setTimestamp(3, Timestamp.from(registration.start())); - addRegistration.setObject(4, registration.end()); + addRegistration.setTimestamp(4, Timestamp.from(registration.end())); addRegistration.setBoolean( 5, true); // ASSUMPTION: Registration gets created as active addRegistration.executeUpdate(); |