Package io.ebean
Class FetchConfig
- java.lang.Object
-
- io.ebean.FetchConfig
-
- All Implemented Interfaces:
Serializable
public class FetchConfig extends Object implements Serializable
Defines how a relationship is fetched via either normal SQL join, a eager secondary query, via lazy loading or via eagerly hitting L2 cache.// Normal fetch join results in a single SQL query List<Order> list = DB.find(Order.class).fetch("details").findList();
Example: Using a "query join" instead of a "fetch join" we instead use 2 SQL queries
// This will use 2 SQL queries to build this object graph List<Order> list = DB.find(Order.class) .fetch("details", FetchConfig.ofQuery()) .findList(); // query 1) find order // query 2) find orderDetails where order.id in (?,?...) // first 100 order id's
- Author:
- mario, rbygrave
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description FetchConfig()
Deprecated.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description FetchConfig
cache()
Deprecated.boolean
equals(Object o)
int
getBatchSize()
Return the batch size for fetching.int
hashCode()
boolean
isCache()
Return true if the fetch should use the L2 cache.boolean
isJoin()
Return true if the fetch should try to use SQL join.boolean
isLazy()
Return true if the fetch should be a lazy query.boolean
isQuery()
Return true if the fetch should be a eager secondary query.FetchConfig
lazy()
Deprecated.FetchConfig
lazy(int batchSize)
Deprecated.static FetchConfig
ofCache()
Return FetchConfig to eagerly fetch the relationship using L2 cache.static FetchConfig
ofDefault()
Return FetchConfig to fetch the relationship using SQL join.static FetchConfig
ofLazy()
Return FetchConfig to lazily load the relationship.static FetchConfig
ofLazy(int batchSize)
Return FetchConfig to lazily load the relationship specifying the batch size.static FetchConfig
ofQuery()
Return FetchConfig to eagerly fetch the relationship using a secondary query.static FetchConfig
ofQuery(int batchSize)
Return FetchConfig to eagerly fetch the relationship using a secondary with a given batch size.FetchConfig
query()
Deprecated.FetchConfig
query(int batchSize)
Deprecated.FetchConfig
queryFirst(int batchSize)
Deprecated.
-
-
-
Constructor Detail
-
FetchConfig
@Deprecated public FetchConfig()
Deprecated.Deprecated - migrate to one of the static factory methods likeofQuery()
Construct using default JOIN mode.
-
-
Method Detail
-
ofCache
public static FetchConfig ofCache()
Return FetchConfig to eagerly fetch the relationship using L2 cache.Any cache misses will be loaded by secondary query to the database.
-
ofQuery
public static FetchConfig ofQuery()
Return FetchConfig to eagerly fetch the relationship using a secondary query.
-
ofQuery
public static FetchConfig ofQuery(int batchSize)
Return FetchConfig to eagerly fetch the relationship using a secondary with a given batch size.
-
ofLazy
public static FetchConfig ofLazy()
Return FetchConfig to lazily load the relationship.
-
ofLazy
public static FetchConfig ofLazy(int batchSize)
Return FetchConfig to lazily load the relationship specifying the batch size.
-
ofDefault
public static FetchConfig ofDefault()
Return FetchConfig to fetch the relationship using SQL join.
-
lazy
@Deprecated public FetchConfig lazy()
Deprecated.Deprecated - migrate to FetchConfig.ofLazy().
-
lazy
@Deprecated public FetchConfig lazy(int batchSize)
Deprecated.Deprecated - migrate to FetchConfig.ofLazy(batchSize).
-
query
@Deprecated public FetchConfig query()
Deprecated.Deprecated - migrate to FetchConfig.ofQuery(). Eagerly fetch the beans in this path as a separate query (rather than as part of the main query).This will use the default batch size for separate query which is 100.
-
query
@Deprecated public FetchConfig query(int batchSize)
Deprecated.Deprecated - migrate to FetchConfig.ofQuery(batchSize). Eagerly fetch the beans in this path as a separate query (rather than as part of the main query).The queryBatchSize is the number of parent id's that this separate query will load per batch.
This will load all beans on this path eagerly unless a
lazy(int)
is also used.- Parameters:
batchSize
- the batch size used to load beans on this path
-
queryFirst
@Deprecated public FetchConfig queryFirst(int batchSize)
Deprecated.Deprecated - migrate to FetchConfig.ofQuery(batchSize). Eagerly fetch the first batch of beans on this path. This is similar toquery(int)
but only fetches the first batch.If there are more parent beans than the batch size then they will not be loaded eagerly but instead use lazy loading.
- Parameters:
batchSize
- the number of parent beans this path is populated for
-
cache
@Deprecated public FetchConfig cache()
Deprecated.Deprecated - migrate to FetchConfig.ofCache(). Eagerly fetch the beans fetching the beans from the L2 bean cache and using the DB for beans not in the cache.
-
getBatchSize
public int getBatchSize()
Return the batch size for fetching.
-
isCache
public boolean isCache()
Return true if the fetch should use the L2 cache.
-
isQuery
public boolean isQuery()
Return true if the fetch should be a eager secondary query.
-
isLazy
public boolean isLazy()
Return true if the fetch should be a lazy query.
-
isJoin
public boolean isJoin()
Return true if the fetch should try to use SQL join.
-
-