org.datanucleus.store.rdbms.scostore
Class RDBMSPersistableRelationStore

java.lang.Object
  extended by org.datanucleus.store.rdbms.scostore.RDBMSPersistableRelationStore
All Implemented Interfaces:
org.datanucleus.store.scostore.PersistableRelationStore, org.datanucleus.store.scostore.Store

public class RDBMSPersistableRelationStore
extends Object
implements org.datanucleus.store.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
protected  String addStmt
          Statement for adding a relation to the join table.
protected  org.datanucleus.ClassLoaderResolver clr
          ClassLoader resolver.
protected  org.datanucleus.store.mapped.DatastoreAdapter dba
          Datastore adapter in use by this store.
protected  PersistableJoinTable joinTable
          Table containing the link between owner and related object.
protected  org.datanucleus.store.mapped.mapping.JavaTypeMapping ownerMapping
          Mapping to the owner of the relation (which holds the member).
protected  org.datanucleus.metadata.AbstractMemberMetaData ownerMemberMetaData
          MetaData for the member in the owner.
protected  String removeStmt
          Statement for removing a relation from the join table.
protected  RDBMSStoreManager storeMgr
          Manager for the store.
protected  String updateStmt
          Statement for updating a relation to the join table.
 
Constructor Summary
RDBMSPersistableRelationStore(org.datanucleus.metadata.AbstractMemberMetaData mmd, PersistableJoinTable joinTable, org.datanucleus.ClassLoaderResolver clr)
          Constructor for a persistable relation join store for RDBMS.
 
Method Summary
 boolean add(org.datanucleus.store.ObjectProvider sm1, org.datanucleus.store.ObjectProvider sm2)
           
protected  String getAddStmt()
          Generates the statement for adding items.
protected  String getRemoveStmt()
          Generates the statement for removing items.
 org.datanucleus.store.StoreManager getStoreManager()
           
protected  String getUpdateStmt()
          Generates the statement for updating items.
static int populateOwnerInStatement(org.datanucleus.store.ObjectProvider sm, org.datanucleus.store.ExecutionContext ec, Object ps, int jdbcPosition, PersistableJoinTable joinTable)
          Convenience method to populate the passed PreparedStatement with the value from the owner.
 boolean remove(org.datanucleus.store.ObjectProvider sm1)
           
 boolean update(org.datanucleus.store.ObjectProvider sm1, org.datanucleus.store.ObjectProvider sm2)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

storeMgr

protected RDBMSStoreManager storeMgr
Manager for the store.


dba

protected org.datanucleus.store.mapped.DatastoreAdapter dba
Datastore adapter in use by this store.


ownerMapping

protected org.datanucleus.store.mapped.mapping.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

RDBMSPersistableRelationStore

public RDBMSPersistableRelationStore(org.datanucleus.metadata.AbstractMemberMetaData mmd,
                                     PersistableJoinTable joinTable,
                                     org.datanucleus.ClassLoaderResolver clr)
Constructor for a persistable relation join store for RDBMS.

Parameters:
mmd - owner member metadata
joinTable - The join table
clr - The ClassLoaderResolver
Method Detail

getStoreManager

public org.datanucleus.store.StoreManager getStoreManager()
Specified by:
getStoreManager in interface org.datanucleus.store.scostore.Store

add

public boolean add(org.datanucleus.store.ObjectProvider sm1,
                   org.datanucleus.store.ObjectProvider sm2)
Specified by:
add in interface org.datanucleus.store.scostore.PersistableRelationStore

remove

public boolean remove(org.datanucleus.store.ObjectProvider sm1)
Specified by:
remove in interface org.datanucleus.store.scostore.PersistableRelationStore

update

public boolean update(org.datanucleus.store.ObjectProvider sm1,
                      org.datanucleus.store.ObjectProvider sm2)
Specified by:
update in interface org.datanucleus.store.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.store.ObjectProvider sm,
                                           org.datanucleus.store.ExecutionContext ec,
                                           Object ps,
                                           int jdbcPosition,
                                           PersistableJoinTable joinTable)
Convenience method to populate the passed PreparedStatement with the value from the owner.

Parameters:
sm - State Manager
ec - execution context
ps - The PreparedStatement
jdbcPosition - Position in JDBC statement to populate
joinTable - Join table
Returns:
The next position in the JDBC statement


Copyright © 2012. All Rights Reserved.