org.apache.openjpa.jdbc.sql
Interface SelectExecutor

All Known Subinterfaces:
Select, Union
All Known Implementing Classes:
LogicalUnion, LogicalUnion.UnionSelect, SelectImpl

public interface SelectExecutor

Interface for configuring and executing a SQL select.

Author:
Abe White

Method Summary
 Result execute(JDBCStore store, JDBCFetchConfiguration fetch)
          Execute this select in the context of the given store manager.
 Result execute(JDBCStore store, JDBCFetchConfiguration fetch, int lockLevel)
          Execute this select in the context of the given store manager.
 boolean getAutoDistinct()
          Whether to automatically make results distinct when relational joins would otherwise introduce duplicates.
 JDBCConfiguration getConfiguration()
          Return the select configuration.
 int getCount(JDBCStore store)
          Return the number of instances matching this select.
 int getExpectedResultCount()
          The expected result count for the query.
 int getJoinSyntax()
          The join syntax for this select, as one of the syntax constants from JoinSyntaxes.
 SQLBuffer getSQL()
          Get the buffer if it has been computed by a previous call to toSelect(boolean, JDBCFetchConfiguration), if any.
 boolean hasMultipleSelects()
          Affirm if this receiver requires more than one selects to fetch its data.
 boolean isDistinct()
          Whether this is a SELECT DISTINCT / UNION ALL.
 boolean isLRS()
          Whether the result of this select should be treated as a large result set.
 void setAutoDistinct(boolean distinct)
          Whether to automatically make results distinct when relational joins would otherwise introduce duplicates.
 void setDistinct(boolean distinct)
          Whether this is a SELECT DISTINCT / UNION ALL.
 void setExpectedResultCount(int expectedResultCount, boolean force)
          The expected result count for the query.
 void setJoinSyntax(int joinSyntax)
          The join syntax for this select, as one of the syntax constants from JoinSyntaxes.
 void setLRS(boolean lrs)
          Whether the result of this select should be treated as a large result set.
 boolean supportsLocking()
          Whether this select can be executed for update.
 boolean supportsRandomAccess(boolean forUpdate)
          Return whether this select can support a random access result set type.
 SQLBuffer toSelect(boolean forUpdate, JDBCFetchConfiguration fetch)
          Return this select as a SQL statement formatted for the current dictionary.
 SQLBuffer toSelectCount()
          Return this select as a COUNT SQL statement formatted for the current dictionary.
 

Method Detail

getConfiguration

JDBCConfiguration getConfiguration()
Return the select configuration.


toSelect

SQLBuffer toSelect(boolean forUpdate,
                   JDBCFetchConfiguration fetch)
Return this select as a SQL statement formatted for the current dictionary.


getSQL

SQLBuffer getSQL()
Get the buffer if it has been computed by a previous call to toSelect(boolean, JDBCFetchConfiguration), if any.

Since:
2.0.0

toSelectCount

SQLBuffer toSelectCount()
Return this select as a COUNT SQL statement formatted for the current dictionary.


getAutoDistinct

boolean getAutoDistinct()
Whether to automatically make results distinct when relational joins would otherwise introduce duplicates.


setAutoDistinct

void setAutoDistinct(boolean distinct)
Whether to automatically make results distinct when relational joins would otherwise introduce duplicates.


isDistinct

boolean isDistinct()
Whether this is a SELECT DISTINCT / UNION ALL.


setDistinct

void setDistinct(boolean distinct)
Whether this is a SELECT DISTINCT / UNION ALL.


isLRS

boolean isLRS()
Whether the result of this select should be treated as a large result set.


setLRS

void setLRS(boolean lrs)
Whether the result of this select should be treated as a large result set.


getExpectedResultCount

int getExpectedResultCount()
The expected result count for the query.


setExpectedResultCount

void setExpectedResultCount(int expectedResultCount,
                            boolean force)
The expected result count for the query.

Parameters:
force - if false, the count will be discarded if this select has any to-many eager joins that would throw off the result count

getJoinSyntax

int getJoinSyntax()
The join syntax for this select, as one of the syntax constants from JoinSyntaxes.


setJoinSyntax

void setJoinSyntax(int joinSyntax)
The join syntax for this select, as one of the syntax constants from JoinSyntaxes.


supportsRandomAccess

boolean supportsRandomAccess(boolean forUpdate)
Return whether this select can support a random access result set type.


supportsLocking

boolean supportsLocking()
Whether this select can be executed for update.


getCount

int getCount(JDBCStore store)
             throws SQLException
Return the number of instances matching this select.

Throws:
SQLException

execute

Result execute(JDBCStore store,
               JDBCFetchConfiguration fetch)
               throws SQLException
Execute this select in the context of the given store manager.

Throws:
SQLException

execute

Result execute(JDBCStore store,
               JDBCFetchConfiguration fetch,
               int lockLevel)
               throws SQLException
Execute this select in the context of the given store manager.

Throws:
SQLException

hasMultipleSelects

boolean hasMultipleSelects()
Affirm if this receiver requires more than one selects to fetch its data.

Since:
2.0.0


Copyright © 2006-2010 Apache Software Foundation. All Rights Reserved.