Repository: empire-db Updated Branches: refs/heads/EMPIREDB-247 9452199b9 -> 3158c077c
EMPIREDB-247 - automatically add WHERE PKs to cmd Project: http://git-wip-us.apache.org/repos/asf/empire-db/repo Commit: http://git-wip-us.apache.org/repos/asf/empire-db/commit/3158c077 Tree: http://git-wip-us.apache.org/repos/asf/empire-db/tree/3158c077 Diff: http://git-wip-us.apache.org/repos/asf/empire-db/diff/3158c077 Branch: refs/heads/EMPIREDB-247 Commit: 3158c077c0fe077d06c1545209a48f872de12573 Parents: 9452199 Author: Jan Glaubitz <[email protected]> Authored: Fri Aug 19 13:58:28 2016 +0200 Committer: Jan Glaubitz <[email protected]> Committed: Fri Aug 19 13:58:28 2016 +0200 ---------------------------------------------------------------------- .../src/main/java/org/apache/empire/db/DBDatabase.java | 11 +++++++++++ 1 file changed, 11 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/empire-db/blob/3158c077/empire-db/src/main/java/org/apache/empire/db/DBDatabase.java ---------------------------------------------------------------------- diff --git a/empire-db/src/main/java/org/apache/empire/db/DBDatabase.java b/empire-db/src/main/java/org/apache/empire/db/DBDatabase.java index 5757b96..b9b7817 100644 --- a/empire-db/src/main/java/org/apache/empire/db/DBDatabase.java +++ b/empire-db/src/main/java/org/apache/empire/db/DBDatabase.java @@ -40,6 +40,7 @@ import org.apache.empire.db.exceptions.QueryFailedException; import org.apache.empire.db.exceptions.QueryNoResultException; import org.apache.empire.db.exceptions.StatementFailedException; import org.apache.empire.db.expr.column.DBValueExpr; +import org.apache.empire.db.expr.set.DBSetExpr; import org.apache.empire.exceptions.InternalException; import org.apache.empire.exceptions.InvalidArgumentException; import org.apache.empire.exceptions.ItemExistsException; @@ -1405,6 +1406,16 @@ public abstract class DBDatabase extends DBObject } else { + // Add WHERE (<all pks> to UPDATE + DBTable table = (DBTable) cmd.set.get(0).getTable(); + for (DBSetExpr se : cmd.set) + { + DBColumn column = se.column; + if (table.getPrimaryKey().contains(column)) + { + cmd.where(column.is(se.value)); + } + } int count = executeUpdate(cmd, conn); if (count < 1) { // nothing updated -> INSERT
