Class AbstractCollectionStore<E>
java.lang.Object
org.datanucleus.store.rdbms.scostore.BaseContainerStore
org.datanucleus.store.rdbms.scostore.ElementContainerStore
org.datanucleus.store.rdbms.scostore.AbstractCollectionStore<E>
- All Implemented Interfaces:
org.datanucleus.store.types.scostore.CollectionStore<E>, org.datanucleus.store.types.scostore.Store
- Direct Known Subclasses:
AbstractListStore, AbstractSetStore, MapValueCollectionStore
public abstract class AbstractCollectionStore<E>
extends ElementContainerStore
implements org.datanucleus.store.types.scostore.CollectionStore<E>
Abstract representation of a store of a Collection.
Contains all common parts of storing Sets and Lists.
-
Field Summary
FieldsFields inherited from class ElementContainerStore
addStmt, clearStmt, containerTable, elementCmd, elementInfo, elementIsPersistentInterface, elementMapping, elementsAreEmbedded, elementsAreSerialised, elementType, iterateUsingDiscriminator, orderMapping, relationDiscriminatorMapping, relationDiscriminatorValue, removeStmt, sizeStmtFields inherited from class BaseContainerStore
allowNulls, clr, dba, ownerMapping, ownerMemberMetaData, relationType, storeMgr -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractCollectionStore(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleanprivate StringgetContainsStatementString(Object element) private StringgetContainsStmt(Object element) Generate statement for retrieving the contents of the Collection.private StringgetRemoveStatementString(Object element) protected StringgetRemoveStmt(Object element) Generate statement for removing an element from the Collection.protected StringgetUpdateEmbeddedElementStmt(JavaTypeMapping fieldMapping) Generate statement for update the field of an embedded element.voidupdate(org.datanucleus.state.DNStateManager sm, Collection<? extends E> coll) booleanupdateEmbeddedElement(org.datanucleus.state.DNStateManager sm, E element, int fieldNumber, Object value) Method to update a field of an embedded element.Methods inherited from class ElementContainerStore
clear, getAddStmtForJoinTable, getClearStmt, getComponentInfoForElement, getContainerTable, getElementClassMetaData, getElementMapping, getRelationDiscriminatorMapping, getRelationDiscriminatorValue, getSize, getSizeStmt, hasOrderMapping, invalidateAddStmt, isElementsAreEmbedded, isElementsAreSerialised, iterator, size, usingJoinTable, validateElementForReading, validateElementForWriting, validateElementTypeMethods inherited from class BaseContainerStore
allowsBatching, getComponentInformationForClass, getDatastoreAdapter, getOwnerMapping, getOwnerMemberMetaData, getRelationType, getStateManagerForEmbeddedPCObject, getStoreManager, isEmbeddedMapping, setOwnerMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.datanucleus.store.types.scostore.CollectionStore
add, addAll, clear, hasOrderMapping, iterator, remove, removeAll, sizeMethods inherited from interface org.datanucleus.store.types.scostore.Store
getOwnerMemberMetaData, getStoreManager
-
Field Details
-
containsStmt
-
-
Constructor Details
-
AbstractCollectionStore
protected AbstractCollectionStore(RDBMSStoreManager storeMgr, org.datanucleus.ClassLoaderResolver clr) Constructor.- Parameters:
storeMgr- Manager for the storeclr- ClassLoader resolver
-
-
Method Details
-
update
- Specified by:
updatein interfaceorg.datanucleus.store.types.scostore.CollectionStore<E>
-
contains
-
getContainsStmt
Generate statement for retrieving the contents of the Collection. The discriminator part is only present when the element type has inheritance strategy of "superclass-table" and is Inverse.SELECT OWNERCOL FROM COLLECTIONTABLE WHERE OWNERCOL=? AND ELEMENTCOL=? [AND DISCRIMINATOR=?] [AND RELATION_DISCRIM=?]
- Returns:
- Statement for retrieving the contents of the Collection.
-
getContainsStatementString
-
getRemoveStmt
-
getRemoveStatementString
-
updateEmbeddedElement
public boolean updateEmbeddedElement(org.datanucleus.state.DNStateManager sm, E element, int fieldNumber, Object value) Method to update a field of an embedded element.- Specified by:
updateEmbeddedElementin interfaceorg.datanucleus.store.types.scostore.CollectionStore<E>- Parameters:
sm- StateManager of the ownerelement- The element to updatefieldNumber- The number of the field to updatevalue- The value- Returns:
- true if the datastore was updated
-
getUpdateEmbeddedElementStmt
Generate statement for update the field of an embedded element.UPDATE SETTABLE SET EMBEDDEDFIELD1 = ? WHERE OWNERCOL=? AND ELEMENTCOL = ?
- Parameters:
fieldMapping- The mapping for the field within the embedded object to be updated- Returns:
- Statement for updating an embedded element in the Set
-