package org.example.domain; import com.avaje.ebean.ExpressionList; import com.avaje.ebean.QueryEachConsumer; import org.example.ExampleBaseTestCase; import org.example.domain.query.QContact; import org.example.domain.query.QCustomer; import org.example.domain.query.QOrder; import org.example.domain.query.QOrderDetail; import org.example.service.LoadExampleData; import org.junit.Test; import java.sql.Date; import java.util.List; public class ExFindIterate extends ExampleBaseTestCase { @Test public void simple() { LoadExampleData.load(); Date oneWeekAgo = new Date(System.currentTimeMillis()); ExpressionList<Order> recentNewOrders = new QOrder() .orderDate.after(oneWeekAgo) .status.eq(Order.Status.NEW) .getExpressionList(); QCustomer cus = QCustomer.alias(); QContact con = QContact.alias(); List<Customer> customers = new QCustomer() // query tuning .select(cus.name, cus.inactive) .contacts.fetch(con.email, con.firstName) .contacts.notes.fetchAll() // predicates .name.ilike("Rob") .orders.filterMany(recentNewOrders) .findList(); // ExpressionList<OrderDetail> detailsFilter = new QOrderDetail() // .unitPrice.isNotNull() // .getExpressionList(); // // Customer cust = Customer.find.ref(1L); // // new QOrder() // .status.in(Order.Status.APPROVED, Order.Status.COMPLETE) // .customer.equalTo(cust) // .details.filterMany(detailsFilter) // .findList(); // new QOrder() // .id.greaterThan(1) // .findEach(new QueryEachConsumer<Order>() { // @Override // public void accept(Order order) { // Customer customer = order.getCustomer(); // List<Contact> contacts = customer.getContacts(); // System.out.println(contacts); // } // }); } }