Package com.avaje.tests.query.joins

Source Code of com.avaje.tests.query.joins.TestQueryJoinQueryNonRoot

package com.avaje.tests.query.joins;

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<Order> d = server.getBeanDescriptor(Order.class);
    ElPropertyValue elGetValue = d.getElGetValue("customer.contacts");

    Assert.assertTrue(elGetValue.containsMany());

    ResetBasicData.reset();

    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();

    Assert.assertNotNull(list);
    Assert.assertTrue(list.size() > 0);

    for (Order order : list) {
      List<Contact> 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<Order> q = Ebean.createQuery(Order.class, oq);
    // q.setAutofetch(false);
    // List<Order> list2 = q.findList();
    //
    // Assert.assertTrue(list2.size() > 0);

  }
 

}
TOP

Related Classes of com.avaje.tests.query.joins.TestQueryJoinQueryNonRoot

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.