diff --git a/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmQuery.java b/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmQuery.java index 7b2dbaec4..2dfe91490 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmQuery.java +++ b/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmQuery.java @@ -435,6 +435,7 @@ public class DefaultOrmQuery implements SpiQuery { // includes joins and we use - delete ... where id in (...) maxRows = 0; firstRow = 0; + forUpdate = false; setSelectId(); } diff --git a/src/test/java/com/avaje/tests/delete/TestDeleteByQuery.java b/src/test/java/com/avaje/tests/delete/TestDeleteByQuery.java index 9e531b350..cb415acbb 100644 --- a/src/test/java/com/avaje/tests/delete/TestDeleteByQuery.java +++ b/src/test/java/com/avaje/tests/delete/TestDeleteByQuery.java @@ -51,6 +51,21 @@ public class TestDeleteByQuery extends BaseTestCase { assertThat(list).isEmpty(); } + @Test + public void testWithForUpdate() { + + EbeanServer server = Ebean.getDefaultServer(); + if (server.getName().equals("mysql")) { + // MySql does not the sub query selecting from the delete table + return; + } + + server.find(Customer.class) + .where().eq("name","FatsDomino") + .query().setForUpdate(true) + .delete(); + } + @Test public void testCommit() {