diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java index 6ff7e5acb..834ec2a04 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java @@ -524,7 +524,7 @@ public final class OrmQueryRequest extends BeanRequest implements SpiOrmQuery } if (result instanceof BeanList) { OrderBy orderBy = query.getOrderBy(); - if (orderBy != null) { + if (orderBy != null && !orderBy.isEmpty()) { // in memory sort after merging the cache hits with the DB hits beanDescriptor.sort(((BeanList) result).getActualList(), orderBy.toStringFormat()); } @@ -543,7 +543,7 @@ public final class OrmQueryRequest extends BeanRequest implements SpiOrmQuery @Override public List beanCacheHits() { OrderBy orderBy = query.getOrderBy(); - if (orderBy != null) { + if (orderBy != null && !orderBy.isEmpty()) { beanDescriptor.sort(cacheBeans, orderBy.toStringFormat()); } return cacheBeans; @@ -552,7 +552,7 @@ public final class OrmQueryRequest extends BeanRequest implements SpiOrmQuery @Override public Map beanCacheHitsAsMap() { OrderBy orderBy = query.getOrderBy(); - if (orderBy != null) { + if (orderBy != null && !orderBy.isEmpty()) { beanDescriptor.sort(cacheBeans, orderBy.toStringFormat()); } return cacheBeansToMap(); diff --git a/ebean-test/src/test/java/org/tests/query/orderby/TestOrderByClear.java b/ebean-test/src/test/java/org/tests/query/orderby/TestOrderByClear.java index c0b7bfd7e..061e0da9f 100644 --- a/ebean-test/src/test/java/org/tests/query/orderby/TestOrderByClear.java +++ b/ebean-test/src/test/java/org/tests/query/orderby/TestOrderByClear.java @@ -6,6 +6,7 @@ import io.ebean.OrderBy; import io.ebean.Query; import org.junit.jupiter.api.Test; import org.tests.model.basic.Order; +import org.tests.model.basic.OrderDetail; import org.tests.model.basic.ResetBasicData; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -37,5 +38,18 @@ public class TestOrderByClear extends BaseTestCase { assertTrue(sql.contains("order by t0.ship_date")); } + + @Test + public void testWithCache() { + ResetBasicData.reset(); + + Query query = DB.find(OrderDetail.class).where().idIn(1,2,3).query(); + query.setUseCache(true); + query.findList(); + query.order().asc("cretime").findList(); // hit cache + query.order().clear(); + query.findList(); // hit cache again + + } }