diff -r 91d1fc2a3a14 -r 33b6843fdf8a src/main/java/de/uapcore/lightpit/dao/postgres/PGVersionDao.java --- a/src/main/java/de/uapcore/lightpit/dao/postgres/PGVersionDao.java Fri May 22 17:26:27 2020 +0200 +++ b/src/main/java/de/uapcore/lightpit/dao/postgres/PGVersionDao.java Fri May 22 21:23:57 2020 +0200 @@ -47,26 +47,27 @@ public PGVersionDao(Connection connection) throws SQLException { list = connection.prepareStatement( - "select id, project, name, ordinal, status " + + "select versionid, project, name, ordinal, status " + "from lpit_version " + "where project = ? " + "order by ordinal, lower(name)"); find = connection.prepareStatement( - "select id, project, name, ordinal, status " + + "select versionid, project, name, ordinal, status " + "from lpit_version " + - "where id = ?"); + "where versionid = ?"); insert = connection.prepareStatement( "insert into lpit_version (project, name, ordinal, status) values (?, ?, ?, ?::version_status)" ); update = connection.prepareStatement( - "update lpit_version set name = ?, ordinal = ?, status = ?::version_status where id = ?" + "update lpit_version set name = ?, ordinal = ?, status = ?::version_status where versionid = ?" ); } - public Version mapColumns(ResultSet result) throws SQLException { - final var version = new Version(result.getInt("id"), new Project(result.getInt("project"))); + private Version mapColumns(ResultSet result) throws SQLException { + final var project = new Project(result.getInt("project")); + final var version = new Version(result.getInt("versionid"), project); version.setName(result.getString("name")); version.setOrdinal(result.getInt("ordinal")); version.setStatus(VersionStatus.valueOf(result.getString("status"))); @@ -86,6 +87,7 @@ @Override public boolean update(Version instance) throws SQLException { + if (instance.getId() < 0) return false; Objects.requireNonNull(instance.getName()); update.setString(1, instance.getName()); update.setInt(2, instance.getOrdinal()); @@ -100,7 +102,9 @@ List versions = new ArrayList<>(); try (var result = list.executeQuery()) { while (result.next()) { - versions.add(mapColumns(result)); + final var v = mapColumns(result); + v.setProject(project); + versions.add(v); } } return versions;