Methods Summary |
---|
public oracle.toplink.essentials.internal.databaseaccess.DatabaseCall | getDatabaseCall()Return the call.
return (DatabaseCall)call;
|
public void | prepareCall()INTERNAL:
This is different from 'prepareForExecution' in that this is called on the original query,
and the other is called on the copy of the query.
This query is copied for concurrency so this prepare can only setup things that
will apply to any future execution of this query.
DatabaseQuery query = getQuery();
AbstractSession executionSession = getSession().getExecutionSession(query);
if (hasMultipleCalls()) {
if(getQuery().shouldCloneCall()){
//For glassFish bug2689, the call needs to be cloned when query asks to do so.
calls = ((Vector)getCalls().clone());
}
for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
DatabaseCall call = (DatabaseCall)callsEnum.nextElement();
if (!query.shouldIgnoreBindAllParameters()) {
call.setUsesBinding(query.shouldBindAllParameters());
}
if (!query.shouldIgnoreCacheStatement()) {
call.setShouldCacheStatement(query.shouldCacheStatement());
}
if (query.isReadQuery()) {
ReadQuery readQuery = (ReadQuery)query;
call.setMaxRows(readQuery.getMaxRows());
if (readQuery.getFirstResult() != 0) {
call.setFirstResult(readQuery.getFirstResult());
call.setIsResultSetScrollable(true);
call.setResultSetType(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE);
call.setResultSetConcurrency(java.sql.ResultSet.CONCUR_READ_ONLY);
}
}
call.prepare(executionSession);
}
} else if (getCall() != null) {
if(getQuery().shouldCloneCall()){
//For glassFish bug2689, the call needs to be cloned when query asks to do so.
call = (DatabaseCall)getDatabaseCall().clone();
setCall(call);
}
DatabaseCall call = getDatabaseCall();
if (!query.shouldIgnoreBindAllParameters()) {
call.setUsesBinding(query.shouldBindAllParameters());
}
if (!query.shouldIgnoreCacheStatement()) {
call.setShouldCacheStatement(query.shouldCacheStatement());
}
if (query.isReadQuery()) {
ReadQuery readQuery = (ReadQuery)query;
call.setMaxRows(readQuery.getMaxRows());
if (readQuery.getFirstResult() != 0) {
call.setFirstResult(readQuery.getFirstResult());
call.setIsResultSetScrollable(true);
call.setResultSetType(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE);
call.setResultSetConcurrency(java.sql.ResultSet.CONCUR_READ_ONLY);
}
}
call.prepare(executionSession);
}
|
public void | prepareDeleteAll()Pre-build configure the SQL call.
if (hasMultipleCalls()) {
for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
DatabaseCall call = (DatabaseCall)callsEnum.nextElement();
call.returnNothing();
if (getQuery().getDescriptor().usesOptimisticLocking()) {
call.setHasOptimisticLock(true);
}
}
} else {
getCall().returnNothing();
if (getQuery().getDescriptor().usesOptimisticLocking()) {
getDatabaseCall().setHasOptimisticLock(true);
}
}
prepareCall();
|
public void | prepareDeleteObject()Pre-build configure the SQL call.
if (hasMultipleCalls()) {
for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
DatabaseCall call = (DatabaseCall)callsEnum.nextElement();
call.returnNothing();
if (getQuery().getDescriptor().usesOptimisticLocking()) {
call.setHasOptimisticLock(true);
}
}
} else {
getCall().returnNothing();
if (getQuery().getDescriptor().usesOptimisticLocking()) {
getDatabaseCall().setHasOptimisticLock(true);
}
}
prepareCall();
|
public void | prepareDoesExist(oracle.toplink.essentials.internal.helper.DatabaseField field)Pre-build configure the SQL call.
getCall().returnOneRow();
Vector fields = oracle.toplink.essentials.internal.helper.NonSynchronizedVector.newInstance(1);
fields.addElement(field);
getDatabaseCall().setFields(fields);
prepareCall();
|
public void | prepareExecuteSelect()Pre-build configure the SQL call.
if (hasMultipleCalls()) {
for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
DatabaseCall databseCall = (DatabaseCall)callsEnum.nextElement();
databseCall.returnManyRows();
databseCall.setIsFieldMatchingRequired(isCallQueryMechanism());
}
} else {
DatabaseCall call = getDatabaseCall();
call.returnManyRows();
call.setIsFieldMatchingRequired(isCallQueryMechanism());
}
prepareCall();
|
public void | prepareSelectAllRows()Pre-build configure the SQL call.
if (hasMultipleCalls()) {
for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
DatabaseCall call = (DatabaseCall)callsEnum.nextElement();
call.returnManyRows();
if (isCallQueryMechanism()) {
call.setIsFieldMatchingRequired(true);
// Set the fieldsincluding joined and partial fields and compute joined indexes,
// this requires and assume that the custom SQL returns the fields in the correct order.
call.setFields(((ObjectLevelReadQuery)getQuery()).getSelectionFields());
((ObjectLevelReadQuery)getQuery()).getJoinedAttributeManager().computeJoiningMappingIndexes(true, getSession(), 0);
}
}
} else {
getCall().returnManyRows();
if (isCallQueryMechanism()) {
DatabaseCall call = getDatabaseCall();
call.setIsFieldMatchingRequired(true);
// Set the fieldsincluding joined and partial fields and compute joined indexes,
// this requires and assume that the custom SQL returns the fields in the correct order.
call.setFields(((ObjectLevelReadQuery)getQuery()).getSelectionFields());
((ObjectLevelReadQuery)getQuery()).getJoinedAttributeManager().computeJoiningMappingIndexes(true, getSession(), 0);
}
}
prepareCall();
|
public void | prepareSelectOneRow()Pre-build configure the SQL call.
if (hasMultipleCalls()) {
for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
DatabaseCall call = (DatabaseCall)callsEnum.nextElement();
call.returnOneRow();
if (isCallQueryMechanism()) {
call.setIsFieldMatchingRequired(true);
// Set the fieldsincluding joined and partial fields and compute joined indexes,
// this requires and assume that the custom SQL returns the fields in the correct order.
call.setFields(((ObjectLevelReadQuery)getQuery()).getSelectionFields());
((ObjectLevelReadQuery)getQuery()).getJoinedAttributeManager().computeJoiningMappingIndexes(true, getSession(), 0);
}
}
} else {
getCall().returnOneRow();
if (isCallQueryMechanism()) {
DatabaseCall call = getDatabaseCall();
call.setIsFieldMatchingRequired(true);
// Set the fieldsincluding joined and partial fields and compute joined indexes,
// this requires and assume that the custom SQL returns the fields in the correct order.
call.setFields(((ObjectLevelReadQuery)getQuery()).getSelectionFields());
((ObjectLevelReadQuery)getQuery()).getJoinedAttributeManager().computeJoiningMappingIndexes(true, getSession(), 0);
}
}
prepareCall();
|
public void | prepareUpdateObject()Pre-build configure the SQL call.
if (hasMultipleCalls()) {
for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
DatabaseCall call = (DatabaseCall)callsEnum.nextElement();
call.returnNothing();
if (getQuery().getDescriptor().usesOptimisticLocking()) {
call.setHasOptimisticLock(true);
}
}
} else if (getCall() != null) {
getCall().returnNothing();
if (getQuery().getDescriptor().usesOptimisticLocking()) {
getDatabaseCall().setHasOptimisticLock(true);
}
}
prepareCall();
|
public void | setCallHasCustomSQLArguments()INTERNAL:
Configure the call to be a dynamic custom SQL call, so that it ignore the # token.
if (hasMultipleCalls()) {
for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
DatabaseCall databseCall = (DatabaseCall)callsEnum.nextElement();
if (databseCall.isSQLCall()) {
((SQLCall)databseCall).setHasCustomSQLArguments(true);
}
}
} else if (getCall().isSQLCall()) {
((SQLCall)getCall()).setHasCustomSQLArguments(true);
}
|
protected void | updateForeignKeyFieldShallow(oracle.toplink.essentials.queryframework.WriteObjectQuery writeQuery)Update the foreign key fields when resolving a bi-directonal reference in a UOW.
This must always be dynamic as it is called within an insert or delete query and
is really part of the write operation and does not fire update events or worry about locking.
for (Enumeration tablesEnum = getDescriptor().getTables().elements();
tablesEnum.hasMoreElements();) {
DatabaseTable table = (DatabaseTable)tablesEnum.nextElement();
SQLUpdateStatement updateStatement = new SQLUpdateStatement();
updateStatement.setModifyRow(getModifyRow());
updateStatement.setTranslationRow(getTranslationRow());
updateStatement.setTable(table);
updateStatement.setWhereClause(getDescriptor().getObjectBuilder().buildPrimaryKeyExpression(table));// Must not check version, ok as just inserted it.
// Bug 2996585
StatementQueryMechanism updateMechanism = new StatementQueryMechanism(writeQuery, updateStatement);
writeQuery.setModifyRow(updateStatement.getModifyRow());
updateMechanism.updateObject();
}
|