Refactor internals of batch lazy loading and query fetches

This commit is contained in:
Rob Bygrave
2014-01-18 23:35:42 +13:00
parent e685e2f4ac
commit 05dcdf162b
28 changed files with 661 additions and 981 deletions
@@ -19,19 +19,27 @@ public class TestQueryFetchJoinWithOrder extends BaseTestCase {
ResetBasicData.reset();
List<Order> list = Ebean.find(Order.class).fetch("details", new FetchConfig().query()).order()
.asc("id").order().desc("details.id").findList();
List<Order> list = Ebean.find(Order.class)
.fetch("details", new FetchConfig().query())
.order().asc("id")
.order().desc("details.id").findList();
Assert.assertNotNull(list);
List<Order> list2 = Ebean.find(Order.class).fetch("customer", new FetchConfig().query())
.fetch("customer.contacts").order().asc("id").order().asc("customer.contacts.lastName")
List<Order> list2 = Ebean.find(Order.class)
.fetch("customer", new FetchConfig().query(5))
.fetch("customer.contacts")
.order().asc("id")
.order().asc("customer.contacts.lastName")
.findList();
Assert.assertNotNull(list2);
List<Customer> list3 = Ebean.find(Customer.class).fetch("orders").filterMany("orders")
.eq("status", Order.Status.NEW).order().desc("orders.id").findList();
List<Customer> list3 = Ebean.find(Customer.class)
.fetch("orders")
.filterMany("orders").eq("status", Order.Status.NEW)
.order().desc("orders.id")
.findList();
Assert.assertNotNull(list3);
@@ -0,0 +1,47 @@
package com.avaje.tests.query;
import java.util.List;
import org.junit.Test;
import com.avaje.ebean.BaseTestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.FetchConfig;
import com.avaje.tests.model.basic.Customer;
import com.avaje.tests.model.basic.Order;
import com.avaje.tests.model.basic.ResetBasicData;
public class TestQueryJoinBatchSize extends BaseTestCase {
@Test
public void test() {
ResetBasicData.reset();
List<Order> list = Ebean.find(Order.class)
.fetch("customer", new FetchConfig().queryFirst(3).lazy(2))
//.fetch("orders.details", new FetchConfig().query())
//.fetch("orders.shipments", new FetchConfig().query())
.findList();
for (Order order : list) {
Customer customer = order.getCustomer();
customer.getName();
}
}
// @Test
// public void test() {
//
// ResetBasicData.reset();
//
// Ebean.find(Customer.class)
// .fetch("orders", new FetchConfig().query(3).lazy(2))
// //.fetch("orders.details", new FetchConfig().query())
// //.fetch("orders.shipments", new FetchConfig().query())
// .findList();
//
// }
}
@@ -30,7 +30,8 @@ public class TestQueryJoinQueryNonRoot extends BaseTestCase {
List<Order> list = Ebean.find(Order.class).fetch("customer")
.fetch("customer.contacts", "firstName", new FetchConfig().query().lazy(10))
.fetch("customer.contacts.group").where().lt("id", 3).findList();
.fetch("customer.contacts.group")
.where().lt("id", 3).findList();
Assert.assertNotNull(list);
Assert.assertTrue(list.size() > 0);