From 88b3f00f3855aa408c7859051efdcb5b37fe559f Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Mon, 29 Jun 2015 09:41:29 +1200 Subject: Fix postgres generated keys problem (fix #480) --- src/org/traccar/database/QueryBuilder.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'src/org/traccar/database/QueryBuilder.java') diff --git a/src/org/traccar/database/QueryBuilder.java b/src/org/traccar/database/QueryBuilder.java index 23d8c6bfa..5e5c163a3 100644 --- a/src/org/traccar/database/QueryBuilder.java +++ b/src/org/traccar/database/QueryBuilder.java @@ -41,14 +41,18 @@ public class QueryBuilder { private PreparedStatement statement; private final String query; - private QueryBuilder(DataSource dataSource, String query) throws SQLException { + private QueryBuilder(DataSource dataSource, String query, boolean returnGeneratedKeys) throws SQLException { indexMap = new HashMap>(); connection = dataSource.getConnection(); this.query = query; if (query != null) { - String parsedQuery = parse(query, indexMap); + String parsedQuery = parse(query.trim(), indexMap); try { - statement = connection.prepareStatement(parsedQuery, Statement.RETURN_GENERATED_KEYS); + if (returnGeneratedKeys) { + statement = connection.prepareStatement(parsedQuery, Statement.RETURN_GENERATED_KEYS); + } else { + statement = connection.prepareStatement(parsedQuery); + } } catch (SQLException error) { connection.close(); throw error; @@ -115,9 +119,13 @@ public class QueryBuilder { return parsedQuery.toString(); } - + public static QueryBuilder create(DataSource dataSource, String query) throws SQLException { - return new QueryBuilder(dataSource, query); + return new QueryBuilder(dataSource, query, false); + } + + public static QueryBuilder create(DataSource dataSource, String query, boolean returnGeneratedKeys) throws SQLException { + return new QueryBuilder(dataSource, query, returnGeneratedKeys); } private List indexes(String name) { -- cgit v1.2.3