public class JoinSetStore<E> extends AbstractSetStore<E>
SetStore
using join table.ElementContainerStore.ElementInfo
Modifier and Type | Field and Description |
---|---|
protected String |
locateStmt
Statement to check the existence of an owner-element relation.
|
protected String |
maxOrderColumnIdStmt
Statement to get the maximum order column id so we can set the next insert value.
|
containsStmt
addStmt, clearStmt, containerTable, elementInfo, elementIsPersistentInterface, elementMapping, elementsAreEmbedded, elementsAreSerialised, elementType, emd, iterateUsingDiscriminator, orderMapping, relationDiscriminatorMapping, relationDiscriminatorValue, removeStmt, sizeStmt
allowNulls, clr, dba, ownerMapping, ownerMemberMetaData, relationType, storeMgr
Constructor and Description |
---|
JoinSetStore(org.datanucleus.metadata.AbstractMemberMetaData mmd,
CollectionTable joinTable,
org.datanucleus.ClassLoaderResolver clr)
Constructor for a join set store for RDBMS.
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(org.datanucleus.state.ObjectProvider op,
E element,
int size)
Adds one element to the association owner vs elements.
|
boolean |
addAll(org.datanucleus.state.ObjectProvider op,
Collection<E> elements,
int size)
Adds all elements from a collection to the association container.
|
protected int[] |
doInternalAdd(org.datanucleus.state.ObjectProvider op,
E element,
org.datanucleus.store.connection.ManagedConnection conn,
boolean batched,
int orderId,
boolean executeNow) |
IteratorStatement |
getIteratorStatement(org.datanucleus.ClassLoaderResolver clr,
org.datanucleus.FetchPlan fp,
boolean addRestrictionOnOwner)
Method to return the SQLStatement and mapping for an iterator for this backing store.
|
protected int |
getNextIDForOrderColumn(org.datanucleus.state.ObjectProvider op) |
protected String |
getRemoveAllStmt(org.datanucleus.state.ObjectProvider op,
Collection elements)
Generate statement for removing a collection of items from the Set.
|
protected String |
getRemoveStmt(Object element)
Generate statement for deleting items from the Set.
|
Iterator<E> |
iterator(org.datanucleus.state.ObjectProvider ownerOP)
Accessor for an iterator for the set.
|
boolean |
removeAll(org.datanucleus.state.ObjectProvider op,
Collection elements,
int size)
Remove all elements from a collection from the association owner vs elements.
|
protected boolean |
removeAllInternal(org.datanucleus.state.ObjectProvider op,
Collection elements,
int size) |
void |
update(org.datanucleus.state.ObjectProvider op,
Collection coll)
Method to update the collection to be the supplied collection of elements.
|
remove
contains, getUpdateEmbeddedElementStmt, updateEmbeddedElement, updateEmbeddedElement
clear, getAddStmtForJoinTable, getClearStmt, getContainerTable, getElementInfoForElement, getElementInformationForClass, getElementMapping, getEmd, getRelationDiscriminatorMapping, getRelationDiscriminatorValue, getSize, getSizeStmt, hasOrderMapping, invalidateAddStmt, isElementsAreEmbedded, isElementsAreSerialised, size, usingJoinTable, validateElementForReading, validateElementForWriting, validateElementType
allowsBatching, getDatastoreAdapter, getObjectProviderForEmbeddedPCObject, getOwnerMapping, getOwnerMemberMetaData, getRelationType, getStoreManager, isEmbeddedMapping, setOwner
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
protected String locateStmt
protected String maxOrderColumnIdStmt
public JoinSetStore(org.datanucleus.metadata.AbstractMemberMetaData mmd, CollectionTable joinTable, org.datanucleus.ClassLoaderResolver clr)
mmd
- Metadata for the member that has the set with join tablejoinTable
- The join tableclr
- The ClassLoaderResolverpublic void update(org.datanucleus.state.ObjectProvider op, Collection coll)
update
in interface org.datanucleus.store.scostore.CollectionStore<E>
update
in class AbstractCollectionStore<E>
op
- ObjectProvider of the objectcoll
- The collection to usepublic boolean add(org.datanucleus.state.ObjectProvider op, E element, int size)
op
- ObjectProvider for the container.element
- Element to addpublic boolean addAll(org.datanucleus.state.ObjectProvider op, Collection<E> elements, int size)
op
- ObjectProvider for the container.elements
- Collection of elements to addpublic boolean removeAll(org.datanucleus.state.ObjectProvider op, Collection elements, int size)
removeAll
in interface org.datanucleus.store.scostore.CollectionStore<E>
removeAll
in class AbstractSetStore<E>
op
- ObjectProvider for the containerelements
- Collection of elements to removeprotected boolean removeAllInternal(org.datanucleus.state.ObjectProvider op, Collection elements, int size)
protected String getRemoveStmt(Object element)
DELETE FROM SETTABLE WHERE OWNERCOL=? AND ELEMENTCOL = ? [AND EMBEDDEDFIELD1 = ? AND EMBEDDEDFIELD2 = ? AND EMBEDDEDFIELD3 = ?] [AND RELATION_DISCRIM = ?]
getRemoveStmt
in class AbstractCollectionStore<E>
element
- The element to removeprotected String getRemoveAllStmt(org.datanucleus.state.ObjectProvider op, Collection elements)
DELETE FROM SETTABLE WHERE (OWNERCOL=? AND ELEMENTCOL=?) OR (OWNERCOL=? AND ELEMENTCOL=?) OR (OWNERCOL=? AND ELEMENTCOL=?)
op
- ObjectProvider for the ownerelements
- Collection of elements to removeprotected int[] doInternalAdd(org.datanucleus.state.ObjectProvider op, E element, org.datanucleus.store.connection.ManagedConnection conn, boolean batched, int orderId, boolean executeNow) throws MappedDatastoreException
MappedDatastoreException
protected int getNextIDForOrderColumn(org.datanucleus.state.ObjectProvider op)
public Iterator<E> iterator(org.datanucleus.state.ObjectProvider ownerOP)
iterator
in interface org.datanucleus.store.scostore.CollectionStore<E>
iterator
in class AbstractSetStore<E>
ownerOP
- ObjectProvider for the set.public IteratorStatement getIteratorStatement(org.datanucleus.ClassLoaderResolver clr, org.datanucleus.FetchPlan fp, boolean addRestrictionOnOwner)
clr
- ClassLoader resolverfp
- FetchPlan to use in determining which fields of element to selectaddRestrictionOnOwner
- Whether to restrict to a particular owner (otherwise functions as bulk fetch for many owners).Copyright © 2017. All rights reserved.