Package io.ebean
Interface FetchGroup<T>
-
- Type Parameters:
T
- The bean type the Fetch group can be applied to
public interface FetchGroup<T>
Defines what part of the object graph to load (select and fetch clauses).Using a FetchGroup effectively sets the select() and fetch() clauses for a query. It is alternative to specifying the select() and fetch() clauses on the query allowing for more re-use of "what to load" that can be defined separately from the query and combined with other FetchGroups.
Select example
FetchGroup<Customer> fetchGroup = FetchGroup.of(Customer.class, "name, status"); Customer.query() .select(fetchGroup) .findList();
Select and fetch example
FetchGroup<Customer> fetchGroup = FetchGroup.of(Customer.class) .select("name, status") .fetch("contacts", "firstName, lastName, email") .build(); Customer.query() .select(fetchGroup) .findList();
Combining FetchGroups
FetchGroups can be combined together to form another FetchGroup.
FetchGroup<Address> FG_ADDRESS = FetchGroup.of(Address.class) .select("line1, line2, city") .fetch("country", "name") .build(); FetchGroup<Customer> FG_CUSTOMER = FetchGroup.of(Customer.class) .select("name, version") .fetch("billingAddress", FG_ADDRESS) .build(); Customer.query() .select(FG_CUSTOMER) .findList();
-
-
Method Summary
Static Methods Modifier and Type Method Description static <T> FetchGroupBuilder<T>
of(Class<T> cls)
Return the FetchGroupBuilder with the given select clause that we can add fetch clauses to.static <T> FetchGroup<T>
of(Class<T> cls, String select)
Return the FetchGroup with the given select clause.static <T> SpiFetchGroupQuery<T>
queryFor(Class<T> beanType)
Return a query to be used by query beans for constructing FetchGroup.
-
-
-
Method Detail
-
of
@Nonnull static <T> FetchGroup<T> of(Class<T> cls, String select)
Return the FetchGroup with the given select clause.We use this for simple FetchGroup that only select() properties and do not have additional fetch() clause.
FetchGroup<Customer> fetchGroup = FetchGroup.of(Customer.class, "name, status"); Customer.query() .select(fetchGroup) .findList();
- Parameters:
select
- The select clause of the FetchGroup- Returns:
- The FetchGroup with the given select clause
-
of
@Nonnull static <T> FetchGroupBuilder<T> of(Class<T> cls)
Return the FetchGroupBuilder with the given select clause that we can add fetch clauses to.We chain select() with one or more fetch() clauses to define the object graph to load.
FetchGroup<Customer> fetchGroup = FetchGroup.of(Customer.class) .select("name, status") .fetch("contacts", "firstName, lastName, email") .build(); Customer.query() .select(fetchGroup) .findList();
- Returns:
- The FetchGroupBuilder with the given select clause which we will add fetch clauses to
-
queryFor
static <T> SpiFetchGroupQuery<T> queryFor(Class<T> beanType)
Return a query to be used by query beans for constructing FetchGroup.
-
-