You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by br...@apache.org on 2005/04/01 22:21:12 UTC
cvs commit: db-ojb/src/java/org/apache/ojb/broker/accesslayer JdbcAccessImpl.java
brj 2005/04/01 12:21:12
Modified: src/java/org/apache/ojb/broker/accesslayer
JdbcAccessImpl.java
Log:
minor refactoring
Revision Changes Path
1.30 +40 -18 db-ojb/src/java/org/apache/ojb/broker/accesslayer/JdbcAccessImpl.java
Index: JdbcAccessImpl.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/JdbcAccessImpl.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- JdbcAccessImpl.java 9 Jan 2005 10:12:56 -0000 1.29
+++ JdbcAccessImpl.java 1 Apr 2005 20:21:12 -0000 1.30
@@ -39,6 +39,7 @@
import org.apache.ojb.broker.metadata.fieldaccess.PersistentField;
import org.apache.ojb.broker.platforms.Platform;
import org.apache.ojb.broker.query.Query;
+import org.apache.ojb.broker.query.QueryByCriteria;
import org.apache.ojb.broker.util.logging.Logger;
import org.apache.ojb.broker.util.logging.LoggerFactory;
import org.apache.ojb.broker.util.sequence.SequenceManagerException;
@@ -271,27 +272,50 @@
}
/**
+ * Answer true if the query is scrollable.
+ * @param query
+ * @return
+ */
+ private boolean isScrollable(Query query)
+ {
+ boolean scrollable = false;
+
+ if (query != null)
+ {
+ /*
+ * MBAIRD: we should create a scrollable resultset if the start at
+ * index or end at index is set
+ */
+ scrollable = ((query.getStartAtIndex() > Query.NO_START_AT_INDEX) || (query.getEndAtIndex() > Query.NO_END_AT_INDEX));
+
+ if (query instanceof QueryByCriteria)
+ {
+ QueryByCriteria qbc = (QueryByCriteria) query;
+
+ /*
+ * OR if the prefetching of relationships is being used.
+ */
+ if (qbc.getPrefetchedRelationships() != null && !qbc.getPrefetchedRelationships().isEmpty())
+ {
+ scrollable = true;
+ }
+ }
+ }
+ return scrollable;
+ }
+
+ /**
* performs a SELECT operation against RDBMS.
* @param query the query string.
* @param cld ClassDescriptor providing JDBC information.
*/
public ResultSetAndStatement executeQuery(Query query, ClassDescriptor cld) throws PersistenceBrokerException
{
- if (logger.isDebugEnabled())
- logger.safeDebug("executeQuery", query);
- /*
- * MBAIRD: we should create a scrollable resultset if the start at
- * index or end at index is set
- */
- boolean scrollable = ((query.getStartAtIndex() > Query.NO_START_AT_INDEX) || (query.getEndAtIndex() > Query.NO_END_AT_INDEX));
- /*
- * OR if the prefetching of relationships is being used.
- */
- if (query != null && query.getPrefetchedRelationships() != null && !query.getPrefetchedRelationships().isEmpty())
- {
- scrollable = true;
- }
+ if (logger.isDebugEnabled()) logger.safeDebug("executeQuery", query);
+
+ boolean scrollable = isScrollable(query);
ResultSetAndStatement retval = null;
+
try
{
String sql = broker.serviceSqlGenerator().getPreparedSelectStatement(query, cld);
@@ -341,9 +365,7 @@
}
}
- public ResultSetAndStatement executeSQL(
- String sqlStatement,
- boolean scrollable)
+ public ResultSetAndStatement executeSQL(String sqlStatement, boolean scrollable)
throws PersistenceBrokerException
{
return executeSQL(sqlStatement, null, scrollable);
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org