package com.avaje.tests.query; import java.util.List; import org.junit.Assert; import org.junit.Test; import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.ebeaninternal.api.SpiEbeanServer; import com.avaje.ebeaninternal.server.deploy.BeanDescriptor; import com.avaje.ebeaninternal.server.el.ElPropertyValue; import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; public class TestQueryJoinQueryNonRoot extends BaseTestCase { @Test public void test() { SpiEbeanServer server = (SpiEbeanServer) Ebean.getServer(null); BeanDescriptor d = server.getBeanDescriptor(Order.class); ElPropertyValue elGetValue = d.getElGetValue("customer.contacts"); Assert.assertTrue(elGetValue.containsMany()); ResetBasicData.reset(); List 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(); Assert.assertNotNull(list); Assert.assertTrue(list.size() > 0); for (Order order : list) { List contacts = order.getCustomer().getContacts(); for (Contact contact : contacts) { contact.getFirstName(); } } // String oq = // "find order join customer join customer.contacts join details (+query(4),+lazy(5))"; // Query q = Ebean.createQuery(Order.class, oq); // q.setAutofetch(false); // List list2 = q.findList(); // // Assert.assertTrue(list2.size() > 0); } }