Package org.javalite.activejdbc
Class SuperLazyList<T extends Model>
java.lang.Object
org.javalite.activejdbc.AbstractLazyList<T>
org.javalite.activejdbc.LazyList<T>
org.javalite.activejdbc.SuperLazyList<T>
- All Implemented Interfaces:
Externalizable
,Serializable
,Iterable<T>
,Collection<T>
,List<T>
,RandomAccess
The purpose of this class is to provide
toMaps()
method in cases of eager loading of dependencies.
This class is never used by application code directly, rather as a return value from Model.getAll(..)
methods.- Author:
- Igor Polevoy
- See Also:
- Serialized Form
-
Field Summary
Fields inherited from class org.javalite.activejdbc.AbstractLazyList
delegate
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
protected void
hydrate()
This method includes associated objects.limit(long limit)
This method limits the number of results in the resultset.load()
This method exists to force immediate load from DB.offset(long offset)
This method sets an offset of a resultset.Use this method to order results by a column.Methods inherited from class org.javalite.activejdbc.LazyList
collect, collect, collectDistinct, collectDistinct, dump, dump, readExternal, toJson, toMaps, toSql, toSql, toXml, writeExternal
Methods inherited from class org.javalite.activejdbc.AbstractLazyList
add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, retainAll, set, size, subList, toArray, toArray, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.List
replaceAll, sort, spliterator
-
Constructor Details
-
SuperLazyList
protected SuperLazyList()
-
-
Method Details
-
add
-
hydrate
protected void hydrate() -
load
Description copied from class:LazyList
This method exists to force immediate load from DB. Example;Person.find("name = ?", "Smith").load();
. It is not possible to call other methods after load(). The load() method should be the last to be called in the chain:Person.find("name = ?", "Smith").limit(10).load();
. This: will generate exception:Person.find("name = ?", "Smith").load().limit();
. -
include
Description copied from class:LazyList
This method includes associated objects. It will eagerly load associated models of models selected by the query. For instance, if there are modelsAuthor
,Post
andComment
, whereAuthor
has manyPost
s andPost
has manyComment
s, then this query:List
or:todayPosts = Post.where("post_date = ?", today).include(Author.class, Comment.class); List
will generate only three queries to database - one per model. All the dependencies (includes) will be eagerly loaded, and iteration via thetodayPosts = Post.where("post_date = ?", today).include(Author.class).include(Comment.class); todayPosts
list will not generate any more queries, even when a post author and comments are requested. Use this with caution as this method can allocate a lot of memory (obviously). This method will not follow relationships of related models, but rather only relationships of the current one. -
orderBy
Description copied from class:LazyList
Use this method to order results by a column. These methods can be chained:Person.find(...).orderBy("department").orderBy("age")
-
offset
Description copied from class:LazyList
This method sets an offset of a resultset. For instance, if the offset is 101, then the resultset will skip the first 100 records. It can be used in combination wit the limit like this:List
This will produce 20 records, starting from record 101. This is an efficient method, it will only retrieve records that are necessary.events = Event.find("mnemonic = ?", "GLUC").offset(101).limit(20).orderBy("history_event_id"); -
limit
Description copied from class:LazyList
This method limits the number of results in the resultset. It can be used in combination with the offset like this:List<Event> events = Event.find("mnemonic = ?", "GLUC").offset(101).limit(20).orderBy("history_event_id");
This will produce 20 records, starting from record 101. This is an efficient method, it will only retrieve records that are necessary.
-