Class JoinPersistableRelationStore
- java.lang.Object
-
- org.datanucleus.store.rdbms.scostore.JoinPersistableRelationStore
-
- All Implemented Interfaces:
org.datanucleus.store.types.scostore.PersistableRelationStore,org.datanucleus.store.types.scostore.Store
public class JoinPersistableRelationStore extends Object implements org.datanucleus.store.types.scostore.PersistableRelationStore
RDBMS implementation of a persistable relation backing store. Represents an N-1 unidirectional join table relation, and manages the access to the join table.
-
-
Field Summary
Fields Modifier and Type Field Description protected StringaddStmtStatement for adding a relation to the join table.protected org.datanucleus.ClassLoaderResolverclrClassLoader resolver.protected DatastoreAdapterdbaDatastore adapter in use by this store.protected PersistableJoinTablejoinTableTable containing the link between owner and related object.protected JavaTypeMappingownerMappingMapping to the owner of the relation (which holds the member).protected org.datanucleus.metadata.AbstractMemberMetaDataownerMemberMetaDataMetaData for the member in the owner.protected StringremoveStmtStatement for removing a relation from the join table.protected RDBMSStoreManagerstoreMgrManager for the store.protected StringupdateStmtStatement for updating a relation to the join table.
-
Constructor Summary
Constructors Constructor Description JoinPersistableRelationStore(org.datanucleus.metadata.AbstractMemberMetaData mmd, PersistableJoinTable joinTable, org.datanucleus.ClassLoaderResolver clr)Constructor for a persistable relation join store for RDBMS.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(org.datanucleus.state.DNStateManager sm1, org.datanucleus.state.DNStateManager sm2)protected StringgetAddStmt()Generates the statement for adding items.org.datanucleus.metadata.AbstractMemberMetaDatagetOwnerMemberMetaData()protected StringgetRemoveStmt()Generates the statement for removing items.org.datanucleus.store.StoreManagergetStoreManager()protected StringgetUpdateStmt()Generates the statement for updating items.static intpopulateOwnerInStatement(org.datanucleus.state.DNStateManager sm, org.datanucleus.ExecutionContext ec, PreparedStatement ps, int jdbcPosition, PersistableJoinTable joinTable)Convenience method to populate the passed PreparedStatement with the value from the owner.booleanremove(org.datanucleus.state.DNStateManager sm)booleanupdate(org.datanucleus.state.DNStateManager sm1, org.datanucleus.state.DNStateManager sm2)
-
-
-
Field Detail
-
storeMgr
protected RDBMSStoreManager storeMgr
Manager for the store.
-
dba
protected DatastoreAdapter dba
Datastore adapter in use by this store.
-
ownerMapping
protected JavaTypeMapping ownerMapping
Mapping to the owner of the relation (which holds the member).
-
ownerMemberMetaData
protected org.datanucleus.metadata.AbstractMemberMetaData ownerMemberMetaData
MetaData for the member in the owner.
-
joinTable
protected PersistableJoinTable joinTable
Table containing the link between owner and related object.
-
clr
protected org.datanucleus.ClassLoaderResolver clr
ClassLoader resolver.
-
addStmt
protected String addStmt
Statement for adding a relation to the join table.
-
updateStmt
protected String updateStmt
Statement for updating a relation to the join table.
-
removeStmt
protected String removeStmt
Statement for removing a relation from the join table.
-
-
Constructor Detail
-
JoinPersistableRelationStore
public JoinPersistableRelationStore(org.datanucleus.metadata.AbstractMemberMetaData mmd, PersistableJoinTable joinTable, org.datanucleus.ClassLoaderResolver clr)Constructor for a persistable relation join store for RDBMS.- Parameters:
mmd- owner member metadatajoinTable- The join tableclr- The ClassLoaderResolver
-
-
Method Detail
-
getStoreManager
public org.datanucleus.store.StoreManager getStoreManager()
- Specified by:
getStoreManagerin interfaceorg.datanucleus.store.types.scostore.Store
-
getOwnerMemberMetaData
public org.datanucleus.metadata.AbstractMemberMetaData getOwnerMemberMetaData()
- Specified by:
getOwnerMemberMetaDatain interfaceorg.datanucleus.store.types.scostore.Store
-
add
public boolean add(org.datanucleus.state.DNStateManager sm1, org.datanucleus.state.DNStateManager sm2)- Specified by:
addin interfaceorg.datanucleus.store.types.scostore.PersistableRelationStore
-
remove
public boolean remove(org.datanucleus.state.DNStateManager sm)
- Specified by:
removein interfaceorg.datanucleus.store.types.scostore.PersistableRelationStore
-
update
public boolean update(org.datanucleus.state.DNStateManager sm1, org.datanucleus.state.DNStateManager sm2)- Specified by:
updatein interfaceorg.datanucleus.store.types.scostore.PersistableRelationStore
-
getAddStmt
protected String getAddStmt()
Generates the statement for adding items.INSERT INTO JOINTABLE (OWNER_COL, RELATED_COL) VALUES (?,?)
- Returns:
- The Statement for adding an item
-
getUpdateStmt
protected String getUpdateStmt()
Generates the statement for updating items.UPDATE JOINTABLE SET RELATED_COL = ? WHERE OWNER_COL = ?
- Returns:
- The Statement for updating an item
-
getRemoveStmt
protected String getRemoveStmt()
Generates the statement for removing items.DELETE FROM JOINTABLE WHERE OWNER_COL = ?
- Returns:
- The Statement for removing an item
-
populateOwnerInStatement
public static int populateOwnerInStatement(org.datanucleus.state.DNStateManager sm, org.datanucleus.ExecutionContext ec, PreparedStatement ps, int jdbcPosition, PersistableJoinTable joinTable)Convenience method to populate the passed PreparedStatement with the value from the owner.- Parameters:
sm- StateManagerec- execution contextps- The PreparedStatementjdbcPosition- Position in JDBC statement to populatejoinTable- Join table- Returns:
- The next position in the JDBC statement
-
-