From 4f22009cd199decb37238ebd5b19b424d77fa5be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Thu, 10 Jul 2014 23:10:00 +0300 Subject: [PATCH] Add tests --- .../mysema/query/sql/dml/SQLUpdateClause.java | 4 ++-- .../java/com/mysema/query/DeleteBase.java | 12 ++++++++++ .../java/com/mysema/query/InsertBase.java | 17 ++++++++++++++ .../test/java/com/mysema/query/MergeBase.java | 22 +++++++++++++++++++ .../java/com/mysema/query/UpdateBase.java | 11 ++++++++++ 5 files changed, 64 insertions(+), 2 deletions(-) diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/dml/SQLUpdateClause.java b/querydsl-sql/src/main/java/com/mysema/query/sql/dml/SQLUpdateClause.java index 3eef1d9ca..76d77bd01 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/dml/SQLUpdateClause.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/dml/SQLUpdateClause.java @@ -135,8 +135,8 @@ public class SQLUpdateClause extends AbstractSQLClause implemen serializer.serializeUpdate(batches.get(i).getMetadata(), entity, batches.get(i).getUpdates()); stmt = stmts.get(serializer.toString()); if (stmt == null) { - stmt = connection.prepareStatement(queryString); - stmts.put(queryString, stmt); + stmt = connection.prepareStatement(serializer.toString()); + stmts.put(serializer.toString(), stmt); } setParameters(stmt, serializer.getConstants(), serializer.getConstantPaths(), metadata.getParams()); stmt.addBatch(); diff --git a/querydsl-sql/src/test/java/com/mysema/query/DeleteBase.java b/querydsl-sql/src/test/java/com/mysema/query/DeleteBase.java index 70ca1d082..b3aeb0d73 100644 --- a/querydsl-sql/src/test/java/com/mysema/query/DeleteBase.java +++ b/querydsl-sql/src/test/java/com/mysema/query/DeleteBase.java @@ -58,6 +58,18 @@ public class DeleteBase extends AbstractBaseTest{ assertEquals(2, delete.execute()); } + @Test + @ExcludeIn(SQLITE) + public void Batch_Templates() throws SQLException{ + insert(survey).values(2, "A","B").execute(); + insert(survey).values(3, "B","C").execute(); + + SQLDeleteClause delete = delete(survey); + delete.where(survey.name.eq(Expressions.stringTemplate("'A'"))).addBatch(); + delete.where(survey.name.eq(Expressions.stringTemplate("'B'"))).addBatch(); + assertEquals(2, delete.execute()); + } + @Test @ExcludeIn(MYSQL) public void Delete() throws SQLException{ diff --git a/querydsl-sql/src/test/java/com/mysema/query/InsertBase.java b/querydsl-sql/src/test/java/com/mysema/query/InsertBase.java index 4d268b8af..d87fb82fa 100644 --- a/querydsl-sql/src/test/java/com/mysema/query/InsertBase.java +++ b/querydsl-sql/src/test/java/com/mysema/query/InsertBase.java @@ -134,6 +134,23 @@ public class InsertBase extends AbstractBaseTest { assertEquals(1l, query().from(survey).where(survey.name.eq("66")).count()); } + @Test + public void Insert_Batch_Templates() { + SQLInsertClause insert = insert(survey) + .set(survey.id, 5) + .set(survey.name, Expressions.stringTemplate("'55'")) + .addBatch(); + + insert.set(survey.id, 6) + .set(survey.name, Expressions.stringTemplate("'66'")) + .addBatch(); + + assertEquals(2, insert.execute()); + + assertEquals(1l, query().from(survey).where(survey.name.eq("55")).count()); + assertEquals(1l, query().from(survey).where(survey.name.eq("66")).count()); + } + @Test public void Insert_Batch2() { SQLInsertClause insert = insert(survey) diff --git a/querydsl-sql/src/test/java/com/mysema/query/MergeBase.java b/querydsl-sql/src/test/java/com/mysema/query/MergeBase.java index c45e11bea..e8b853a36 100644 --- a/querydsl-sql/src/test/java/com/mysema/query/MergeBase.java +++ b/querydsl-sql/src/test/java/com/mysema/query/MergeBase.java @@ -145,6 +145,28 @@ public class MergeBase extends AbstractBaseTest{ assertEquals(1l, query().from(survey).where(survey.name.eq("6")).count()); } + @Test + @IncludeIn(H2) + public void MergeBatch_Templates() { + SQLMergeClause merge = merge(survey) + .keys(survey.id) + .set(survey.id, 5) + .set(survey.name, Expressions.stringTemplate("'5'")) + .addBatch(); + + merge + .keys(survey.id) + .set(survey.id, 6) + .set(survey.name, Expressions.stringTemplate("'6'")) + .addBatch(); + + assertEquals(2, merge.execute()); + + assertEquals(1l, query().from(survey).where(survey.name.eq("5")).count()); + assertEquals(1l, query().from(survey).where(survey.name.eq("6")).count()); + } + + @Test @IncludeIn(H2) public void MergeBatch_with_subquery() { diff --git a/querydsl-sql/src/test/java/com/mysema/query/UpdateBase.java b/querydsl-sql/src/test/java/com/mysema/query/UpdateBase.java index 81b4d11cf..694665d67 100644 --- a/querydsl-sql/src/test/java/com/mysema/query/UpdateBase.java +++ b/querydsl-sql/src/test/java/com/mysema/query/UpdateBase.java @@ -123,6 +123,17 @@ public class UpdateBase extends AbstractBaseTest { assertEquals(2, update.execute()); } + @Test + public void Batch_Templates() throws SQLException{ + insert(survey).values(2, "A","B").execute(); + insert(survey).values(3, "B","C").execute(); + + SQLUpdateClause update = update(survey); + update.set(survey.name, "AA").where(survey.name.eq(Expressions.stringTemplate("'A'"))).addBatch(); + update.set(survey.name, "BB").where(survey.name.eq(Expressions.stringTemplate("'B'"))).addBatch(); + assertEquals(2, update.execute()); + } + @Test public void Update_with_SubQuery_exists() { QSurvey survey1 = new QSurvey("s1");