From cad736b1bad936589cd6341d5e204dad5bf0588d Mon Sep 17 00:00:00 2001 From: Tharre Date: Wed, 30 May 2018 18:08:32 +0200 Subject: Work around H2 bug in OperationDAO.list() --- .../groupphase/einsatzverwaltung/dao/OperationDatabaseDAO.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDatabaseDAO.java index 0a465f2..1989764 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDatabaseDAO.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/OperationDatabaseDAO.java @@ -150,11 +150,14 @@ public class OperationDatabaseDAO implements OperationDAO { // This hack exists because H2 currently has a bug that prevents IN (?) with an array of // ids, i.e. pstmt.setArray(1, con.createArrayOf("INT", intarray) from working. See // commented code below. + + // SELECT * FROM Operation WHERE status IN ('COMPLETED', 'CANCELLED') is BUGGED on H2! + // for this reason we use the ordinal values instead String str = statuses.stream() - .map(Enum::name) - .map(s -> "'" + s + "'") + .map(e -> Integer.toString(e.ordinal())) .collect(Collectors.joining(",")); + String sql = "SELECT * FROM Operation WHERE status IN (" + str + ")"; Set operations = new HashSet<>(); -- cgit v1.2.3-70-g09d2