org.jpox.store.rdbms.scostore
Class FKArrayStore
java.lang.Object
org.jpox.store.rdbms.scostore.BaseContainerStore
org.jpox.store.rdbms.scostore.ElementContainerStore
org.jpox.store.rdbms.scostore.AbstractArrayStore
org.jpox.store.rdbms.scostore.FKArrayStore
- All Implemented Interfaces:
- ArrayStore, Store
- public class FKArrayStore
- extends AbstractArrayStore
Backing store for an array that is formed by a foreign key in the table of the
element type. Only supported when the element is a PersistenceCapable type (since
that has its own element table, capable of having a FK!)
- Version:
- $Revision: 1.5 $
Fields inherited from class org.jpox.store.rdbms.scostore.ElementContainerStore |
clearStmt, clr, containerTable, dba, elementInfo, elementMapping, elementsAreEmbedded, elementsAreSerialised, elementType, elmIdentifier, emd, iterateUsingDiscriminator, LOCALISER, orderMapping, ownerFieldMetaData, ownerMapping, relationDiscriminatorMapping, relationDiscriminatorValue, sizeStmt, storeMgr, thisIdentifier |
Methods inherited from class org.jpox.store.rdbms.scostore.ElementContainerStore |
executeQuery, executeUpdate, getAddStmt, getClearStmt, getElementInformationForClass, getElementType, getOwnerMapping, getSizeStmt, getStateManagerForEmbeddedPCObject, getStoreManager, hasOrderMapping, initialiseStatements, isEmbeddedMapping, newResultObjectFactory, populateElementDiscriminatorInStatement, populateElementInStatement, populateEmbeddedElementFieldsInStatement, populateOrderInStatement, populateOwnerInStatement, populateRelationDiscriminatorInStatement, size, validateElementForReading, validateElementForWriting, validateElementType |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
FKArrayStore
public FKArrayStore(AbstractPropertyMetaData fmd,
RDBMSManager storeMgr,
ClassLoaderResolver clr)
- Constructor.
- Parameters:
fmd
- Field MetaData for the field that this representsstoreMgr
- The Store Manager in useclr
- The ClassLoaderResolver
getClearNullifyStmt
protected java.lang.String getClearNullifyStmt()
- Generates the statement for clearing items by nulling the owner link out.
The statement will be
UPDATE ARRAYTABLE SET OWNERCOL=NULL, INDEXCOL=NULL [,DISTINGUISHER=NULL]
WHERE OWNERCOL=? [AND DISTINGUISHER=?]
when there is only one element table, and will be
UPDATE ? SET OWNERCOL=NULL, INDEXCOL=NULL [,DISTINGUISHER=NULL]
WHERE OWNERCOL=? [AND DISTINGUISHER=?]
when there is more than 1 element table.
- Returns:
- The Statement for clearing items for the owner.
clear
public void clear(StateManager ownerSM)
- Method to clear the Array.
This is called when the container object is being deleted and the elements are to be removed (maybe for dependent field).
- Specified by:
clear
in interface ArrayStore
- Overrides:
clear
in class AbstractArrayStore
- Parameters:
ownerSM
- The state manager
set
public boolean set(StateManager ownerSM,
java.lang.Object array)
- Method to set the array for the specified owner to the passed value.
- Specified by:
set
in interface ArrayStore
- Overrides:
set
in class AbstractArrayStore
- Parameters:
ownerSM
- State Manager for the ownerarray
- the array
- Returns:
- Whether the array was updated successfully
getIteratorStatement
protected QueryExpression getIteratorStatement(StateManager ownerSM)
- Accessor for the iterator statement to retrieve the element(s) for the array.
- Specified by:
getIteratorStatement
in class AbstractArrayStore
- Parameters:
ownerSM
- The StateManager
- Returns:
- The Query Statement.
joinElementsTo
public ScalarExpression joinElementsTo(QueryExpression stmt,
QueryExpression parentStmt,
JavaTypeMapping ownerMapping,
LogicSetExpression ownerTe,
DatastoreIdentifier listRangeVar,
java.lang.Class filteredElementType,
ScalarExpression elmExpr,
DatastoreIdentifier elementRangeVar)
- Method used in queries when contains() has been invoked.
- Parameters:
stmt
- The Query StatementparentStmt
- the parent Query Statement. If there is no parent, parentStmt
must be equals to stmt
ownerMapping
- the mapping for the owner.ownerTe
- Table Expression for the ownerlistRangeVar
- The range variable for the "List" table.filteredElementType
- The Class Type for the filtered elementelmExpr
- The Expression for the elementelementRangeVar
- The SQL alias, or "range variable", to assign to the
expression or to the element table.
- Returns:
- expression to the join
Copyright © -2007 . All Rights Reserved.