1 19 20 package org.apache.cayenne.dba.oracle; 21 22 import org.apache.cayenne.dba.DbAdapter; 23 import org.apache.cayenne.dba.JdbcActionBuilder; 24 import org.apache.cayenne.map.EntityResolver; 25 import org.apache.cayenne.query.BatchQuery; 26 import org.apache.cayenne.query.ProcedureQuery; 27 import org.apache.cayenne.query.SQLAction; 28 import org.apache.cayenne.query.SelectQuery; 29 30 34 class OracleActionBuilder extends JdbcActionBuilder { 35 36 OracleActionBuilder(DbAdapter adapter, EntityResolver resolver) { 37 super(adapter, resolver); 38 } 39 40 public SQLAction batchAction(BatchQuery query) { 41 42 if (OracleAdapter.isSupportsOracleLOB() && OracleAdapter.updatesLOBColumns(query)) { 44 return new OracleLOBBatchAction(query, getAdapter()); 45 } 46 else { 47 48 boolean useOptimisticLock = query.isUsingOptimisticLocking(); 51 boolean runningAsBatch = !useOptimisticLock && adapter.supportsBatchUpdates(); 52 53 OracleBatchAction action = new OracleBatchAction( 54 query, 55 getAdapter(), 56 getEntityResolver()); 57 action.setBatch(runningAsBatch); 58 return action; 59 } 60 61 } 62 63 public SQLAction procedureAction(ProcedureQuery query) { 64 return new OracleProcedureAction(query, getAdapter(), getEntityResolver()); 65 } 66 67 public SQLAction objectSelectAction(SelectQuery query) { 68 return new OracleSelectAction(query, getAdapter(), getEntityResolver()); 69 } 70 } 71 | Popular Tags |