Package net.java.ao

Class Query

java.lang.Object
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:
  • Field Details

    • ALIAS_PATTERN

      protected static final Pattern ALIAS_PATTERN
    • AGGREGATE_FUNCTION_PATTERN

      protected static final Pattern AGGREGATE_FUNCTION_PATTERN
  • Constructor Details

    • 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 Details

    • getFields

      public Iterable<String> getFields()
    • getFieldMetadata

      public List<Query.FieldMetadata> getFieldMetadata()
    • 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)
    • having

      public Query having(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)
    • getHavingClause

      public String getHavingClause()
    • setHavingClause

      public void setHavingClause(String havingClause)
    • 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)
    • getAlias

      protected Optional<String> getAlias(String field)
    • getSingleFieldMetadata

      protected Query.FieldMetadata getSingleFieldMetadata(String field)
    • 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 "*"