org.apache.cayenne.query
Class InsertBatchQuery

java.lang.Object
  extended by org.apache.cayenne.query.BatchQuery
      extended by org.apache.cayenne.query.InsertBatchQuery
All Implemented Interfaces:
java.io.Serializable, Query

public class InsertBatchQuery
extends BatchQuery

Batched INSERT query. Allows inserting multiple object snapshots (DataRows) for a given DbEntity in a single query. InsertBatchQuery normally is not used directly. Rather DataContext creates one internally when committing DataObjects.

Author:
Andriy Shapochka
See Also:
Serialized Form

Field Summary
protected  java.util.List dbAttributes
           
protected  java.util.List objectIds
           
protected  java.util.List objectSnapshots
           
 
Fields inherited from class org.apache.cayenne.query.BatchQuery
batchIndex, dbEntity, name
 
Constructor Summary
InsertBatchQuery(DbEntity entity, int batchCapacity)
          Creates new InsertBatchQuery for a given DbEntity and estimated capacity.
 
Method Summary
 void add(java.util.Map snapshot)
          Adds a snapshot to batch.
 void add(java.util.Map snapshot, ObjectId id)
          Adds a snapshot to batch.
 java.util.List getDbAttributes()
          Returns a list of DbAttributes describing batch parameters.
 ObjectId getObjectId()
          Returns an ObjectId associated with the current batch iteration.
 java.lang.Object getValue(int dbAttributeIndex)
          Returns a value at a given index for the current batch iteration.
 int size()
          Returns the number of parameter rows in a batch.
 
Methods inherited from class org.apache.cayenne.query.BatchQuery
createSQLAction, getDbEntity, getMetaData, getName, getObject, getRoot, getValue, getValuesForUpdateParameters, isEmpty, isUsingOptimisticLocking, next, reset, route, setName, setRoot
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

objectIds

protected java.util.List objectIds
Since:
1.2

objectSnapshots

protected java.util.List objectSnapshots

dbAttributes

protected java.util.List dbAttributes
Constructor Detail

InsertBatchQuery

public InsertBatchQuery(DbEntity entity,
                        int batchCapacity)
Creates new InsertBatchQuery for a given DbEntity and estimated capacity.

Method Detail

getValue

public java.lang.Object getValue(int dbAttributeIndex)
Description copied from class: BatchQuery
Returns a value at a given index for the current batch iteration.

Specified by:
getValue in class BatchQuery

add

public void add(java.util.Map snapshot)
Adds a snapshot to batch. A shortcut for "add(snapshot, null)".


add

public void add(java.util.Map snapshot,
                ObjectId id)
Adds a snapshot to batch. Optionally stores the object id for the snapshot. Note that snapshot can hold either the real values or the instances of org.apache.commons.collections.Factory that will be resolved to the actual value on the spot, thus allowing deferred propagated keys resolution.

Since:
1.2

size

public int size()
Description copied from class: BatchQuery
Returns the number of parameter rows in a batch.

Specified by:
size in class BatchQuery

getDbAttributes

public java.util.List getDbAttributes()
Description copied from class: BatchQuery
Returns a list of DbAttributes describing batch parameters.

Specified by:
getDbAttributes in class BatchQuery

getObjectId

public ObjectId getObjectId()
Returns an ObjectId associated with the current batch iteration. Used internally by Cayenne to match current iteration with a specific object and assign it generated keys.

Overrides:
getObjectId in class BatchQuery
Since:
1.2


Copyright © 2001-2006 Apache.org All Rights Reserved.