|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jpox.store.rdbms.scostore.ElementContainerStore
org.jpox.store.rdbms.scostore.AbstractCollectionStore
org.jpox.store.rdbms.scostore.FKSetStore
public class FKSetStore
Representation of an Inverse Set as part of a relationship. This class is used where you have a 1-N and the tables are not joined via a link table. That is there is an owner table, and a collection table, and the collection table has a column being the id of the owner table. This is in contrast to NormalSetStore which represents 1-N relationships using a link table. There are 2 possible uses here
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class org.jpox.store.rdbms.scostore.ElementContainerStore |
|---|
ElementContainerStore.ElementInfo |
| Field Summary | |
|---|---|
protected boolean |
allowsNull
Whether the container allows null elements/values. |
protected org.jpox.store.mapped.DatastoreAdapter |
dba
Datastore adapter in use by this store. |
protected static org.jpox.util.Localiser |
LOCALISER
Localiser for messages. |
protected org.jpox.store.mapped.mapping.JavaTypeMapping |
ownerMapping
Mapping to the owner of the container. |
protected org.jpox.metadata.AbstractMemberMetaData |
ownerMemberMetaData
MetaData for the field/property in the owner with this container. |
protected java.lang.String |
setName
|
protected RDBMSManager |
storeMgr
Manager for the store. |
| Fields inherited from class org.jpox.store.rdbms.scostore.AbstractCollectionStore |
|---|
containsStmt |
| Fields inherited from class org.jpox.store.rdbms.scostore.ElementContainerStore |
|---|
addStmt, clearStmt, clr, containerTable, elementInfo, elementIsPersistentInterface, elementMapping, elementsAreEmbedded, elementsAreSerialised, elementType, elmIdentifier, emd, iterateUsingDiscriminator, orderMapping, relationDiscriminatorMapping, relationDiscriminatorValue, removeStmt, usingDiscriminatorInSizeStmt |
| Constructor Summary | |
|---|---|
FKSetStore(org.jpox.metadata.AbstractMemberMetaData fmd,
RDBMSManager storeMgr,
org.jpox.ClassLoaderResolver clr)
Constructor for the relationship representation. |
|
| Method Summary | |
|---|---|
boolean |
add(org.jpox.StateManager sm,
java.lang.Object element,
int size)
Method to add an object to the relationship at the collection end. |
boolean |
addAll(org.jpox.StateManager sm,
java.util.Collection elements,
int size)
Method to add a collection of object to the relationship at the collection end. |
protected boolean |
allowsBatching()
Convenience method to return if the RDBMS supports batching and the user wants batching. |
void |
clear(org.jpox.StateManager ownerSM)
Method to allow the Set relationship to be cleared out. |
protected java.lang.String |
getClearNullifyStmt()
Generates the statement for clearing items by nulling the owner link out. |
protected java.lang.String |
getContainsStmt()
Generate statement for retrieving the contents of the Collection. |
protected int |
getFieldNumberInElementForBidirectional(org.jpox.StateManager sm)
This seems to return the field number in the element of the relation when it is a bidirectional relation. |
protected org.jpox.store.mapped.expression.QueryExpression |
getIteratorStatement(org.jpox.StateManager ownerSM)
Accessor for a QueryStatement to retrieve the elements of the set. |
org.jpox.store.mapped.mapping.JavaTypeMapping |
getOwnerMapping()
Accessor for the owner mapping. |
protected java.lang.String |
getSizeStmt()
Generate statement for getting the size of the container. |
protected org.jpox.StateManager |
getStateManagerForEmbeddedPCObject(org.jpox.StateManager sm,
java.lang.Object obj,
JoinTable table)
Method to return the StateManager for an embedded PC object (element, key, value). |
org.jpox.store.StoreManager |
getStoreManager()
Accessor for the RDBMSManager. |
protected int[] |
internalAdd(org.jpox.StateManager ownerSM,
org.jpox.ManagedConnection conn,
boolean batched,
java.lang.Object element,
boolean processNow)
Method to process an "add" statement. |
protected int[] |
internalRemove(org.jpox.StateManager ownerSM,
org.jpox.ManagedConnection conn,
boolean batched,
java.lang.Object element,
boolean executeNow)
Method to process a "remove" statement. |
protected boolean |
isEmbeddedMapping(org.jpox.store.mapped.mapping.JavaTypeMapping mapping)
Check if the mapping correspond to a non pc object or embedded field |
java.util.Iterator |
iterator(org.jpox.StateManager ownerSM)
Accessor for an iterator for the set. |
org.jpox.store.mapped.expression.ScalarExpression |
joinElementsTo(org.jpox.store.mapped.expression.QueryExpression stmt,
org.jpox.store.mapped.expression.QueryExpression parentStmt,
org.jpox.store.mapped.mapping.JavaTypeMapping ownerMapping,
org.jpox.store.mapped.expression.LogicSetExpression ownerTe,
org.jpox.store.mapped.DatastoreIdentifier setTableAlias,
java.lang.Class filteredElementType,
org.jpox.store.mapped.expression.ScalarExpression elementExpr,
org.jpox.store.mapped.DatastoreIdentifier elementTableAlias,
boolean existsQuery)
Utility for use in building a query, joining the element table and the owner table. |
org.jpox.store.mapped.expression.QueryExpression |
newQueryStatement(org.jpox.StateManager sm,
java.lang.String candidateClass,
org.jpox.store.mapped.DatastoreIdentifier candidateAlias)
Utility method to return a new QueryStatement for retrieval of the elements of this Set. |
protected int |
populateOwnerInStatement(org.jpox.StateManager sm,
org.jpox.ObjectManager om,
java.sql.PreparedStatement ps,
int jdbcPosition)
Convenience method to populate the passed PreparedStatement with the value from the owner. |
boolean |
remove(org.jpox.StateManager sm,
java.lang.Object element,
int size,
boolean allowDependentField)
Method to remove the link to the collection object specified. |
boolean |
removeAll(org.jpox.StateManager sm,
java.util.Collection elements,
int size)
Method to remove the links to a collection of elements specified. |
protected void |
setOwnerMemberMetaData(org.jpox.metadata.AbstractMemberMetaData mmd)
Method to set the owner field/property MetaData and sets whether null elements/values are allowed. |
| Methods inherited from class org.jpox.store.rdbms.scostore.AbstractCollectionStore |
|---|
contains, getExistsSubquery, getRemoveStmt, getSizeSubquery, getUpdateEmbeddedElementStmt, updateEmbeddedElement |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.jpox.store.scostore.CollectionStore |
|---|
contains, getElementType, hasOrderMapping, size, updateEmbeddedElement |
| Methods inherited from interface org.jpox.store.scostore.Store |
|---|
getStoreManager |
| Methods inherited from interface org.jpox.store.mapped.scostore.CollectionStoreQueryable |
|---|
newResultObjectFactory |
| Field Detail |
|---|
protected java.lang.String setName
protected static final org.jpox.util.Localiser LOCALISER
protected RDBMSManager storeMgr
protected org.jpox.store.mapped.DatastoreAdapter dba
protected org.jpox.store.mapped.mapping.JavaTypeMapping ownerMapping
protected org.jpox.metadata.AbstractMemberMetaData ownerMemberMetaData
protected boolean allowsNull
| Constructor Detail |
|---|
public FKSetStore(org.jpox.metadata.AbstractMemberMetaData fmd,
RDBMSManager storeMgr,
org.jpox.ClassLoaderResolver clr)
fmd - The MetaData for the field that this representsstoreMgr - The RDBMSManager managing the associated datastore.clr - The ClassLoaderResolver| Method Detail |
|---|
protected java.lang.String getSizeStmt()
SELECT COUNT(*) FROM CONTAINERTABLE WHERE OWNERCOL=? [AND ORDERCOL IS NOT NULL] [AND (DISCRIMINATOR=? OR DISCRMINATOR=? OR DISCRIMINATOR=?)]The discriminator part includes all subclasses of the element type
getSizeStmt in class ElementContainerStoreprotected java.lang.String getContainsStmt()
SELECT OWNERCOL FROM COLLECTIONTABLE WHERE OWNERCOL=? AND ELEMENTCOL = ? [AND DISCRIMINATOR = ?]
getContainsStmt in class AbstractCollectionStoreprotected java.lang.String getClearNullifyStmt()
UPDATE LISTTABLE SET OWNERCOL=NULL [,DISTINGUISHER=NULL] WHERE OWNERCOL=?when there is only one element table, and will be
UPDATE ? SET OWNERCOL=NULL [,DISTINGUISHER=NULL] WHERE OWNERCOL=?when there is more than 1 element table.
protected int getFieldNumberInElementForBidirectional(org.jpox.StateManager sm)
sm - StateManager of the owner
public boolean add(org.jpox.StateManager sm,
java.lang.Object element,
int size)
add in interface org.jpox.store.scostore.CollectionStoresm - StateManager of the owner of the Setelement - Element to be added
public boolean addAll(org.jpox.StateManager sm,
java.util.Collection elements,
int size)
addAll in interface org.jpox.store.scostore.CollectionStoresm - StateManager of the Setelements - Elements to be addedsize - Current size of set (if known). Not used by sets
public boolean remove(org.jpox.StateManager sm,
java.lang.Object element,
int size,
boolean allowDependentField)
remove in interface org.jpox.store.scostore.CollectionStoresm - The StateManager of the Setelement - The element of the collection to be deleted.allowDependentField - Whether to allow any cascade deletes caused by this removalsize - Current size
public boolean removeAll(org.jpox.StateManager sm,
java.util.Collection elements,
int size)
removeAll in interface org.jpox.store.scostore.CollectionStoresm - The StateManager of the Setelements - The elements of the collection to be deleted.
public void clear(org.jpox.StateManager ownerSM)
clear in interface org.jpox.store.scostore.CollectionStoreclear in class ElementContainerStoreownerSM - StateManager of the Setprotected org.jpox.store.mapped.expression.QueryExpression getIteratorStatement(org.jpox.StateManager ownerSM)
ownerSM - the owner StateManager
public org.jpox.store.mapped.expression.QueryExpression newQueryStatement(org.jpox.StateManager sm,
java.lang.String candidateClass,
org.jpox.store.mapped.DatastoreIdentifier candidateAlias)
sm - StateManager for this objectcandidateClass - Class for the element end of the link.candidateAlias - Alias for the candidate
public org.jpox.store.mapped.expression.ScalarExpression joinElementsTo(org.jpox.store.mapped.expression.QueryExpression stmt,
org.jpox.store.mapped.expression.QueryExpression parentStmt,
org.jpox.store.mapped.mapping.JavaTypeMapping ownerMapping,
org.jpox.store.mapped.expression.LogicSetExpression ownerTe,
org.jpox.store.mapped.DatastoreIdentifier setTableAlias,
java.lang.Class filteredElementType,
org.jpox.store.mapped.expression.ScalarExpression elementExpr,
org.jpox.store.mapped.DatastoreIdentifier elementTableAlias,
boolean existsQuery)
stmt - The Query StatementparentStmt - the parent Query Statement. If there is no parent, parentStmt must be equals to stmtownerMapping - the mapping for the owner.ownerTe - Table Expression for the ownerfilteredElementType - The Class Type for the filtered elementelementExpr - The Expression for the elementelementTableAlias - The SQL alias to assign to the expression or to the element table.setTableAlias - The alias for the "Set" tableexistsQuery - Whether this is joining for an EXISTS query
public java.util.Iterator iterator(org.jpox.StateManager ownerSM)
iterator in interface org.jpox.store.scostore.CollectionStoreiterator in class ElementContainerStoreownerSM - State Manager for the set.
protected int[] internalAdd(org.jpox.StateManager ownerSM,
org.jpox.ManagedConnection conn,
boolean batched,
java.lang.Object element,
boolean processNow)
throws java.sql.SQLException
ownerSM - StateManager for the ownerconn - The connectionbatched - Whether we are batching itelement - The element
java.sql.SQLException - Thrown if an error occurs
protected int[] internalRemove(org.jpox.StateManager ownerSM,
org.jpox.ManagedConnection conn,
boolean batched,
java.lang.Object element,
boolean executeNow)
throws java.sql.SQLException
internalRemove in class AbstractCollectionStoreownerSM - StateManager for the ownerconn - The connectionbatched - Whether we are batching itelement - The elementexecuteNow - Whether to execute the statement rather than allow batching til later
java.sql.SQLException - Thrown if an error occursprotected void setOwnerMemberMetaData(org.jpox.metadata.AbstractMemberMetaData mmd)
mmd - MetaData for the field/property owning this backing store.public org.jpox.store.StoreManager getStoreManager()
public org.jpox.store.mapped.mapping.JavaTypeMapping getOwnerMapping()
protected boolean isEmbeddedMapping(org.jpox.store.mapped.mapping.JavaTypeMapping mapping)
mapping - the mapping
protected int populateOwnerInStatement(org.jpox.StateManager sm,
org.jpox.ObjectManager om,
java.sql.PreparedStatement ps,
int jdbcPosition)
sm - State Managerom - Object Managerps - The PreparedStatementjdbcPosition - Position in JDBC statement to populate
protected org.jpox.StateManager getStateManagerForEmbeddedPCObject(org.jpox.StateManager sm,
java.lang.Object obj,
JoinTable table)
sm - State Manager of the ownerobj - The embedded PC objecttable - Join table where the objects are stored
protected boolean allowsBatching()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||