public class LazyList<T extends Model> extends AbstractLazyList<T> implements Externalizable
delegate| Modifier | Constructor and Description | 
|---|---|
protected  | 
LazyList()
This is only used by SuperLazyList 
 | 
protected  | 
LazyList(boolean forPaginator,
        MetaModel metaModel,
        String fullQuery,
        Object... params)  | 
protected  | 
LazyList(String subQuery,
        MetaModel metaModel,
        Object... params)  | 
| Modifier and Type | Method and Description | 
|---|---|
List | 
collect(String attributeName)
Collects values from a result set that correspond to a attribute name. 
 | 
List | 
collect(String attributeName,
       String filterAttribute,
       Object filterValue)  | 
Set | 
collectDistinct(String attributeName)  | 
Set | 
collectDistinct(String attributeName,
               String filterAttribute,
               Object filterValue)  | 
void | 
dump()
Dumps contents of this list to  
System.out. | 
void | 
dump(OutputStream out)
Dumps content of list to a stream. 
 | 
protected void | 
hydrate()  | 
<E extends Model> | 
include(Class<? extends Model>... classes)
This method includes associated objects. 
 | 
<E extends Model> | 
limit(long limit)
This method limits the number of results in the resultset. 
 | 
<E extends Model> | 
load()
This method exists to force immediate load from DB. 
 | 
<E extends Model> | 
offset(long offset)
This method sets an offset of a resultset. 
 | 
<E extends Model> | 
orderBy(String orderBy)
Use this method to order results by a column. 
 | 
void | 
readExternal(ObjectInput in)  | 
String | 
toJson(boolean pretty,
      String... attrs)
Generates JSON from content of this list 
 | 
List<Map<String,Object>> | 
toMaps()
Converts the resultset to list of maps, where each map represents a row in the resultset keyed off column names. 
 | 
String | 
toSql()
Same as  
toSql(true), see toSql(boolean); | 
String | 
toSql(boolean showParameters)
Use to see what SQL will be sent to the database. 
 | 
String | 
toXml(boolean pretty,
     boolean declaration,
     String... attrs)
Generates a XML document from content of this list. 
 | 
void | 
writeExternal(ObjectOutput out)  | 
add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, retainAll, set, size, subList, toArray, toArray, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitreplaceAll, sort, spliteratorparallelStream, removeIf, streamprotected LazyList(boolean forPaginator,
                   MetaModel metaModel,
                   String fullQuery,
                   Object... params)
metaModel - fullQuery - forPaginator - true is this list should not check usage of limit() and offset() methods.params - protected LazyList()
public <E extends Model> LazyList<E> limit(long limit)
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.limit - how many records to retrieve.LazyListpublic <E extends Model> LazyList<E> offset(long offset)
List  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.offset - LazyListpublic <E extends Model> LazyList<E> orderBy(String orderBy)
Person.find(...).orderBy("department").orderBy("age")orderBy - order by clause. Examples: "department", "age desc", etc.LazyListpublic <E extends Model> LazyList<E> include(Class<? extends Model>... classes)
Author, Post
 and Comment, where Author has many Posts and  Post
 has many Comments, then this query:
 Listor:todayPosts = Post.where("post_date = ?", today).include(Author.class, Comment.class); 
Listwill 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.classes - list of dependent classes. These classes represent models with which a current model has a
 relationship.LazyListpublic List<Map<String,Object>> toMaps()
public String toXml(boolean pretty, boolean declaration, String... attrs)
pretty - pretty format (human readable), or one line text.declaration - true to include XML declaration at the topattrs - list of attributes to include. No arguments == include all attributes.public String toJson(boolean pretty, String... attrs)
pretty - true if you want pretty format, false if notattrs - attributes to include, not providing any will include all.public <E extends Model> LazyList<E> load()
 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();.public String toSql()
toSql(true), see toSql(boolean);public String toSql(boolean showParameters)
showParameters - true to see parameter values, false not to.protected void hydrate()
hydrate in class AbstractLazyList<T extends Model>public List collect(String attributeName)
Person models, then
 you can collect first names like this:
 
 List firstNames = Person.findAll().collect("first_name");
 
 provided that the corresponding table has a column first_name.
 
 Keep in mind, that if all you need is a one column data, this method of getting it is not
 the most efficient (because since you are using a model, you will query all columns from a table,
 but will use only one). In these cases, you might want to consider Base.firstColumn(String, Object...) and
 DB.firstColumn(String, Object...).attributeName - name of attribute to collect.public Set collectDistinct(String attributeName, String filterAttribute, Object filterValue)
public void dump()
System.out.public void dump(OutputStream out)
out - public void writeExternal(ObjectOutput out) throws IOException
writeExternal in interface ExternalizableIOExceptionpublic void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal in interface ExternalizableIOExceptionClassNotFoundExceptionCopyright © 2020 JavaLite. All rights reserved.