net.java.ao
Class Query

java.lang.Object
  extended by net.java.ao.Query
All Implemented Interfaces:
Serializable

public class Query
extends Object
implements Serializable

A cross-database representation of a SELECT query, independent of database provider type.

Use with DatabaseProvider.renderQuery(Query, net.java.ao.schema.TableNameConverter, boolean) to produce the database-specific SQL.

Author:
Daniel Spiewak
See Also:
Serialized Form

Nested Class Summary
static class Query.QueryType
           
 
Constructor Summary
Query(Query.QueryType type, String fields)
          Create a Query and set the field list in the SELECT clause.
 
Method Summary
 Query alias(Class<? extends RawEntity<?>> table, String alias)
           
 Query distinct()
           
 Query from(Class<? extends RawEntity<?>> tableType)
           
 Query from(String table)
           
 String getAlias(Class<? extends RawEntity<?>> table)
           
 String[] getCanonicalFields(EntityInfo<?,?> entityInfo)
           
 Iterable<String> getFields()
           
 String getGroupClause()
           
 Map<Class<? extends RawEntity<?>>,String> getJoins()
           
 int getLimit()
           
 int getOffset()
           
 String getOrderClause()
           
 String getTable()
           
 Class<? extends RawEntity<?>> getTableType()
           
 Query.QueryType getType()
           
 String getWhereClause()
           
 Object[] getWhereParams()
           
 Query group(String clause)
           
 boolean isDistinct()
           
 Query join(Class<? extends RawEntity<?>> join)
           
 Query join(Class<? extends RawEntity<?>> join, String on)
           
 Query limit(int limit)
           
 Query offset(int offset)
           
 Query order(String clause)
           
static Query select()
          Create a Query which will select the primary key field of the entity.
static Query select(String fields)
          Create a Query and set the field list in the SELECT clause.
 void setDistinct(boolean distinct)
           
 void setGroupClause(String groupClause)
           
 void setJoins(Map<Class<? extends RawEntity<?>>,String> joins)
           
 void setLimit(int limit)
           
 void setOffset(int offset)
           
 void setOrderClause(String orderClause)
           
protected  void setParameters(EntityManager manager, PreparedStatement stmt)
           
 void setTable(String table)
           
 void setTableType(Class<? extends RawEntity<?>> tableType)
           
 void setWhereClause(String whereClause)
           
 void setWhereParams(Object[] whereParams)
           
protected
<K> String
toSQL(EntityInfo<? extends RawEntity<K>,K> entityInfo, DatabaseProvider provider, TableNameConverter converter, boolean count)
           
 Query where(String clause, Object... params)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Query

public Query(Query.QueryType type,
             String fields)
Create a Query and set the field list in the SELECT clause.

Parameters:
fields - The fields to select, as comma-delimited field names. Spaces are OK. Must not contain "*".
Throws:
IllegalArgumentException - if fields contains "*"
Method Detail

getFields

public Iterable<String> getFields()

distinct

public Query distinct()

from

public Query from(Class<? extends RawEntity<?>> tableType)

from

public Query from(String table)

where

public Query where(String clause,
                   Object... params)

order

public Query order(String clause)

group

public Query group(String clause)

limit

public Query limit(int limit)

offset

public Query offset(int offset)

alias

public Query alias(Class<? extends RawEntity<?>> table,
                   String alias)

getAlias

public String getAlias(Class<? extends RawEntity<?>> table)

join

public Query join(Class<? extends RawEntity<?>> join,
                  String on)

join

public Query join(Class<? extends RawEntity<?>> join)

isDistinct

public boolean isDistinct()

setDistinct

public void setDistinct(boolean distinct)

getTableType

public Class<? extends RawEntity<?>> getTableType()

setTableType

public void setTableType(Class<? extends RawEntity<?>> tableType)

getTable

public String getTable()

setTable

public void setTable(String table)

getWhereClause

public String getWhereClause()

setWhereClause

public void setWhereClause(String whereClause)

getWhereParams

public Object[] getWhereParams()

setWhereParams

public void setWhereParams(Object[] whereParams)

getOrderClause

public String getOrderClause()

setOrderClause

public void setOrderClause(String orderClause)

getGroupClause

public String getGroupClause()

setGroupClause

public void setGroupClause(String groupClause)

getLimit

public int getLimit()

setLimit

public void setLimit(int limit)

getOffset

public int getOffset()

setOffset

public void setOffset(int offset)

getJoins

public Map<Class<? extends RawEntity<?>>,String> getJoins()

setJoins

public void setJoins(Map<Class<? extends RawEntity<?>>,String> joins)

getType

public Query.QueryType getType()

getCanonicalFields

public String[] getCanonicalFields(EntityInfo<?,?> entityInfo)

toSQL

protected <K> String toSQL(EntityInfo<? extends RawEntity<K>,K> entityInfo,
                           DatabaseProvider provider,
                           TableNameConverter converter,
                           boolean count)

setParameters

protected void setParameters(EntityManager manager,
                             PreparedStatement stmt)
                      throws SQLException
Throws:
SQLException

select

public static Query select()
Create a Query which will select the primary key field of the entity.

Returns:
non-null Query

select

public static Query select(String fields)
Create a Query and set the field list in the SELECT clause.

Parameters:
fields - The fields to select, as comma-delimited field names. Spaces are OK. Must not contain "*".
Returns:
non-null Query
Throws:
IllegalArgumentException - if fields contains "*"


Copyright © 2007-2015. All Rights Reserved.