code: public static <T extends Model> LazyList<T> where(String subquery, Object... params) {
          return ModelDelegate.where(Model.<T>modelClass(), subquery, params);
      }
docs: Finder method for DB queries based on table represented by this model. Usually the SQL starts with:
  
  <code>"select * from table_name where " + subquery</code> where table_name is a table represented by this model.
  
  Code example:
  <pre>
  
  List<Person> teenagers = Person.where("age &gt ? and age &lt ?", 12, 20);
  // iterate...
  
  //same can be achieved (since parameters are optional):
  List<Person> teenagers = Person.where("age &gt 12 and age &lt 20");
  //iterate
  </pre>
  
  Limit, offset and order by can be chained like this:
  
  <pre>
  List<Person> teenagers = Person.where("age &gt ? and age &lt ?", 12, 20).offset(101).limit(20).orderBy(age);
  //iterate
  </pre>
  
  This is a great way to build paged applications.
  
  
  @param subquery this is a set of conditions that normally follow the "where" clause. Example:
  <code>"department = ? and dob > ?"</code>. If this value is "*" and no parameters provided, then {@link #findAll()} is executed.
  @param params list of parameters corresponding to the place holders in the subquery.
  @return instance of <code>LazyList<Model></code> containing results.