diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/OrmQueryRequest.java b/src/main/java/com/avaje/ebeaninternal/server/core/OrmQueryRequest.java index aa946cbbc..ea6f2c826 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/core/OrmQueryRequest.java +++ b/src/main/java/com/avaje/ebeaninternal/server/core/OrmQueryRequest.java @@ -10,6 +10,7 @@ import javax.persistence.PersistenceException; import com.avaje.ebean.*; import com.avaje.ebean.bean.BeanCollection; +import com.avaje.ebean.bean.EntityBean; import com.avaje.ebean.bean.PersistenceContext; import com.avaje.ebean.event.BeanFindController; import com.avaje.ebean.event.BeanQueryRequest; @@ -151,6 +152,14 @@ public final class OrmQueryRequest extends BeanRequest implements BeanQueryRe return persistenceContext; } + /** + * Add the bean to the persistence context. + */ + public void persistenceContextAdd(EntityBean bean) { + Object id = beanDescriptor.getId(bean); + persistenceContext.put(id, bean); + } + /** * This will create a local (readOnly) transaction if no current transaction * exists. diff --git a/src/main/java/com/avaje/ebeaninternal/server/query/CQuery.java b/src/main/java/com/avaje/ebeaninternal/server/query/CQuery.java index 3f3231c08..3bde3c115 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/query/CQuery.java +++ b/src/main/java/com/avaje/ebeaninternal/server/query/CQuery.java @@ -433,6 +433,7 @@ public class CQuery implements DbReadContext, CancelableQuery { } else { // nextBean set to previously read currentBean nextBean = currentBean; + request.persistenceContextAdd(nextBean); // check the current row we have just moved to if (checkForDifferentBean()) { return true; diff --git a/src/test/java/com/avaje/tests/query/TestOneToManyCorrectGrouping.java b/src/test/java/com/avaje/tests/query/TestOneToManyCorrectGrouping.java index 98b37afdf..d68cf8b4d 100644 --- a/src/test/java/com/avaje/tests/query/TestOneToManyCorrectGrouping.java +++ b/src/test/java/com/avaje/tests/query/TestOneToManyCorrectGrouping.java @@ -21,7 +21,7 @@ public class TestOneToManyCorrectGrouping extends BaseTestCase { ResetBasicData.reset(); Query customerQuery = Ebean.find(Customer.class) .fetch("orders") - .where() + .where().le("id", 2) .query(); QueryIterator customerQueryIterator = customerQuery.findIterate();