From 8bb884374b37ff8e90491209bb10f97ff1e23ded Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 21 Feb 2017 22:53:14 +1300 Subject: [PATCH] #970 - FOR UPDATE queries are not honored when beans are already cached --- .../server/querydefn/DefaultOrmQuery.java | 1 + .../server/querydefn/DefaultOrmQueryTest.java | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java b/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java index 7a7644226..c0f058644 100644 --- a/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java +++ b/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java @@ -804,6 +804,7 @@ public class DefaultOrmQuery implements SpiQuery { @Override public DefaultOrmQuery setForUpdate(boolean forUpdate) { this.forUpdate = forUpdate; + this.excludeBeanCache = true; return this; } diff --git a/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java b/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java index 435586b3c..451353372 100644 --- a/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java +++ b/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java @@ -2,6 +2,7 @@ package io.ebeaninternal.server.querydefn; import io.ebean.Ebean; +import org.tests.model.basic.Customer; import org.tests.model.basic.Order; import org.junit.Test; @@ -9,6 +10,15 @@ import static org.assertj.core.api.Assertions.assertThat; public class DefaultOrmQueryTest { + @Test + public void when_forUpdate_then_excludeFromBeanCache() { + + DefaultOrmQuery q1 = (DefaultOrmQuery) Ebean.find(Customer.class) + .setForUpdate(true).where().eq("id", 42).query(); + + assertThat(q1.isExcludeBeanCache()).isTrue(); + } + @Test public void checkForId_when_eqId_then_translatedTo_setId() {