diff --git a/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java b/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java index d9423e356..718e9cd79 100644 --- a/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java +++ b/src/main/java/io/ebeaninternal/server/query/CQueryBuilder.java @@ -142,7 +142,13 @@ class CQueryBuilder { private String buildUpdateSql(OrmQueryRequest request, String rootTableAlias, CQueryPredicates predicates, SqlTree sqlTree) { - String updateClause = "update " + request.getBeanDescriptor().getBaseTable() + " set " + predicates.getDbUpdateClause(); + StringBuilder sb = new StringBuilder(200); + sb.append("update ").append(request.getBeanDescriptor().getBaseTable()); + if (rootTableAlias != null) { + sb.append(" ").append(rootTableAlias); + } + sb.append(" set ").append(predicates.getDbUpdateClause()); + String updateClause = sb.toString(); if (!sqlTree.isIncludeJoins()) { // simple - update table set ... where ... diff --git a/src/test/java/io/ebean/UpdateQueryTest.java b/src/test/java/io/ebean/UpdateQueryTest.java index 732e3239c..c8689d608 100644 --- a/src/test/java/io/ebean/UpdateQueryTest.java +++ b/src/test/java/io/ebean/UpdateQueryTest.java @@ -29,6 +29,23 @@ public class UpdateQueryTest extends BaseTestCase { assertThat(query.getGeneratedSql()).contains("update o_customer set status=?, updtime=? where status = ? and id > ?"); } + @Test + public void withTableAlias() { + + EbeanServer server = server(); + UpdateQuery update = server.update(Customer.class); + Query query = update + .set("status", Customer.Status.ACTIVE) + .set("updtime", new Timestamp(System.currentTimeMillis())) + .where() + .gt("id", 1000) + .query(); + + query.alias("cust"); + query.update(); + + assertThat(query.getGeneratedSql()).contains("update o_customer cust set status=?, updtime=? where id > ?"); + } @Test public void withJoin() {