|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.sormula.operation.SqlOperation<R> org.sormula.operation.ScalarSelectOperation<R>
R
- class type which contains members for columns of a row in a tablepublic class ScalarSelectOperation<R>
Select operation that reads one value at a time. It does not have any methods
that use Collection
objects.
Constructor Summary | |
---|---|
ScalarSelectOperation(Table<R> table)
Constructs standard sql select by primary key as: SELECT c1, c2, c3, ... |
|
ScalarSelectOperation(Table<R> table,
java.lang.String whereConditionName)
Constructs standard sql select by primary key as: SELECT c1, c2, c3, ... |
Method Summary | |
---|---|
void |
close()
Cleans up after operation is no longer needed. |
void |
execute()
Performs query. |
int |
getMaximumRowsRead()
Gets the maximum number of rows to read from result set. |
java.lang.String |
getOrderByName()
Gets order by name set with setOrderBy(String) . |
protected OrderByTranslator<R> |
getOrderByTranslator()
Gets the OrderByTranslator . |
protected java.sql.ResultSet |
getResultSet()
Gets the result set of the most recent select. |
int |
getRowsReadCount()
Gets the count of rows that were read since the most recent execute() . |
protected java.lang.String |
getSql()
Gets full sql statement to prepare. Order by clause is appended to super getSql() . |
protected void |
initBaseSql()
Sets the base sql with SqlOperation.setBaseSql(String) . |
boolean |
isLazySelectsCascades()
Reports that operation has at least one field with SelectCascade.lazy() true. |
boolean |
isNotifyLazySelects()
Reports that isLazySelectsCascades() is true and row is instanceof LazySelectable . |
protected void |
postRead(R row)
Invoked after reading columns into row. |
protected void |
postReadCascade(R row)
Invoked after reading row. |
protected java.util.List<CascadeOperation<R,?>> |
prepareCascades(java.lang.reflect.Field field)
Creates and prepares cascade operations based upon cascade annotations for a field. |
protected void |
preRead(R row)
Invoked prior to reading columns into row. |
protected void |
preReadCascade(R row)
Invoked prior to reading row. |
R |
readNext()
Reads one row from current result set. |
R |
select(java.lang.Object... parameters)
Set parameters, executes, reads one row, closes. |
R |
select(R whereParameters)
Set parameters, executes, reads one row, closes. |
void |
setMaximumRowsRead(int maximumRowsRead)
Gets the maximum number of rows to read from result set. |
void |
setOrderBy(java.lang.String orderByName)
Sets order of results in list. |
protected void |
setOrderByTranslator(OrderByTranslator<R> orderByTranslator)
Sets the OrderByTranslator that creates the sql "order by" phrase based upon
the OrderBy annotations. |
void |
setParameters(java.lang.Object... parameters)
Sets any parameters to be used by operation. |
void |
setRowParameters(R rowParameters)
Set parameters using values from a row object. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ScalarSelectOperation(Table<R> table) throws OperationException
table
- select from this table
OperationException
- if errorpublic ScalarSelectOperation(Table<R> table, java.lang.String whereConditionName) throws OperationException
table
- select from this tablewhereConditionName
- name of where condition to use ("primaryKey" to select
by primary key; empty string to select all rows in table)
OperationException
- if errorMethod Detail |
---|
public int getMaximumRowsRead()
Integer.MAX_VALUE
.
Integer.MAX_VALUE
public void setMaximumRowsRead(int maximumRowsRead)
readNext()
and
SelectOperation.readAll()
. Limiting rows read is usefull to avoid
reading too many rows and thus creating memory or display problems.
In the future, when more databases support a standard way to limit rows, I will add support for SQL level limits through a method like "setMaximumRows(int)" and SQL "FETCH FIRST n ROWS ONLY".
maximumRowsRead
- 0..Integer.MAX_VALUE
public int getRowsReadCount()
execute()
.
public void setRowParameters(R rowParameters)
setParameters(Object...)
.
rowParameters
- where parameters are read from this object using fields definted in
Where
or Column.primaryKey()
.public void setParameters(java.lang.Object... parameters)
Column.primaryKey()
or Where
annotation.
setParameters
in class SqlOperation<R>
parameters
- parameters as objects (not from row fields)public void execute() throws OperationException
readNext()
to get the next row selected.
execute
in class SqlOperation<R>
OperationException
- if errorpublic void close() throws OperationException
CascadeOperation
objects. This method should
be invoked when operation is no longer needed for proper JDBC clean up.
close
in class SqlOperation<R>
OperationException
- if errorpublic R readNext() throws OperationException
OperationException
- if errorpublic void setOrderBy(java.lang.String orderByName) throws OperationException
orderByName
- name of order phrase to use as defined in OrderBy.name()
in OrderBy
annotation on row R; use empty string for no ordering
OperationException
- if errorpublic java.lang.String getOrderByName()
setOrderBy(String)
.
public R select(java.lang.Object... parameters) throws OperationException
parameters
- query parameters as objects (see setParameters(Object...)
)
readNext()
OperationException
- if errorpublic R select(R whereParameters) throws OperationException
whereParameters
- query parameters are read from an existing row object
(see setRowParameters(Object)
)
readNext()
OperationException
- if errorpublic boolean isLazySelectsCascades()
SelectCascade.lazy()
true. This
status is set during SqlOperation.prepare()
.
public boolean isNotifyLazySelects()
isLazySelectsCascades()
is true and row is instanceof LazySelectable
. This is
set as an optimization so the readNext()
only tests a boolean to know when to invoke
LazySelectable.pendingLazySelects(org.sormula.Database)
.
LazySelectable.pendingLazySelects(org.sormula.Database)
will be inovked for each row selectedprotected OrderByTranslator<R> getOrderByTranslator()
OrderByTranslator
. See setOrderByTranslator(OrderByTranslator)
for details.
protected void setOrderByTranslator(OrderByTranslator<R> orderByTranslator)
OrderByTranslator
that creates the sql "order by" phrase based upon
the OrderBy
annotations. Default is null. Set by setOrderBy(String)
.
orderByTranslator
- order translator or null if no ordering desiredprotected java.lang.String getSql()
getSql()
.
getSql
in class SqlOperation<R>
SqlOperation.prepare()
protected java.sql.ResultSet getResultSet()
protected void initBaseSql()
SqlOperation.setBaseSql(String)
.
protected void preRead(R row)
row
- row that will get column values from tableprotected void postRead(R row)
row
- row that got column values from tableprotected void preReadCascade(R row) throws OperationException
SelectCascade.post()
is false.
row
- row that will get column values from table
OperationException
protected void postReadCascade(R row) throws OperationException
SelectCascade.post()
is true.
row
- row that got column values from table
OperationException
protected java.util.List<CascadeOperation<R,?>> prepareCascades(java.lang.reflect.Field field) throws OperationException
prepareCascades
in class SqlOperation<R>
field
- annotation is for this field of row class R
OperationException
- if error
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |