# Class SQLTemplateDescriptor

java.lang.Object
org.apache.cayenne.map.QueryDescriptor
org.apache.cayenne.map.SQLTemplateDescriptor

All Implemented Interfaces:
  `Serializable, ConfigurationNode, XMLSerializable`

public class SQLTemplateDescriptor extends QueryDescriptor

Since:
  4.0
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Map<String,String>`
  `adapterSql`
  `protected Map<String,Integer>`
  `prefetchesMap`
  `protected String`
  `sql`

  ### Fields inherited from class QueryDescriptor

  `DATA_MAP_ROOT, dataMap, DB_ENTITY_ROOT, EJBQL_QUERY, JAVA_CLASS_ROOT, name, OBJ_ENTITY_ROOT, PROCEDURE_QUERY, PROCEDURE_ROOT, properties, root, SELECT_QUERY, SQL_TEMPLATE, type`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SQLTemplateDescriptor()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addPrefetch(String prefetchPath, int semantics)`
  Adds single prefetch path with semantics to this query.
  `SQLTemplate`
  `buildQuery()`
  Assembles Cayenne query instance of appropriate type from this descriptor.
  `void`
  `encodeAsXML(XMLEncoder encoder, ConfigurationNodeVisitor delegate)`
  Prints itself as XML to the provided XMLEncoder.
  `Map<String,String>`
  `getAdapterSql()`
  Returns map of db adapter specific SQL statements.
  `Map<String,Integer>`
  `getPrefetchesMap()`
  Returns map of prefetch paths with semantics for this query.
  `String`
  `getSql()`
  Returns default SQL statement for this query.
  `void`
  `removePrefetch(String prefetchPath)`
  Removes single prefetch path from this query.
  `void`
  `setAdapterSql(Map<String,String> adapterSql)`
  Sets a map db adapter specific SQL statements for this query.
  `void`
  `setPrefetchesMap(HashMap<String,Integer> prefetchesMap)`
  Sets map of prefetch paths with semantics for this query.
  `void`
  `setSql(String sql)`
  Sets default SQL statement for this query.

  ### Methods inherited from class QueryDescriptor

  `acceptVisitor, descriptor, ejbqlQueryDescriptor, getDataMap, getName, getProperties, getProperty, getRoot, getType, procedureQueryDescriptor, selectQueryDescriptor, setDataMap, setName, setProperties, setProperty, setRoot, setType, sqlTemplateDescriptor`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### sql

    protected String sql

  - ### prefetchesMap

    protected Map<String,Integer> prefetchesMap

  - ### adapterSql

    protected Map<String,String> adapterSql

- ## Constructor Details

  - ### SQLTemplateDescriptor

    public SQLTemplateDescriptor()

- ## Method Details

  - ### getSql

    public String getSql()
    Returns default SQL statement for this query.

  - ### setSql

    public void setSql(String sql)
    Sets default SQL statement for this query.

  - ### getAdapterSql

    public Map<String,String> getAdapterSql()
    Returns map of db adapter specific SQL statements.

  - ### setAdapterSql

    public void setAdapterSql(Map<String,String> adapterSql)
    Sets a map db adapter specific SQL statements for this query.

  - ### getPrefetchesMap

    public Map<String,Integer> getPrefetchesMap()
    Returns map of prefetch paths with semantics for this query.
    Since:
      4.1

  - ### setPrefetchesMap

    public void setPrefetchesMap(HashMap<String,Integer> prefetchesMap)
    Sets map of prefetch paths with semantics for this query.
    Since:
      4.1

  - ### addPrefetch

    public void addPrefetch(String prefetchPath, int semantics)
    Adds single prefetch path with semantics to this query.
    Since:
      4.1

  - ### removePrefetch

    public void removePrefetch(String prefetchPath)
    Removes single prefetch path from this query.
    Since:
      4.1

  - ### buildQuery

    public SQLTemplate buildQuery()
    Description copied from class: `QueryDescriptor`
    Assembles Cayenne query instance of appropriate type from this descriptor.
    Overrides:
      `buildQuery` in class `QueryDescriptor`

  - ### encodeAsXML

    public void encodeAsXML(XMLEncoder encoder, ConfigurationNodeVisitor delegate)
    Description copied from interface: `XMLSerializable`
    Prints itself as XML to the provided XMLEncoder.
    Specified by:
      `encodeAsXML` in interface `XMLSerializable`
    Overrides:
      `encodeAsXML` in class `QueryDescriptor`