Package org.datanucleus.store.cassandra
Class CassandraPersistenceHandler
- java.lang.Object
-
- org.datanucleus.store.AbstractPersistenceHandler
-
- org.datanucleus.store.cassandra.CassandraPersistenceHandler
-
- All Implemented Interfaces:
org.datanucleus.store.StorePersistenceHandler
public class CassandraPersistenceHandler extends org.datanucleus.store.AbstractPersistenceHandlerHandler for basic persistence operations with Cassandra datastores.
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,String>deleteStatementByClassNameprotected Map<String,String>getVersionStatementByClassNameprotected Map<String,String>insertStatementByClassNameprotected Map<String,String>locateStatementByClassName
-
Constructor Summary
Constructors Constructor Description CassandraPersistenceHandler(org.datanucleus.store.StoreManager storeMgr)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voiddeleteObject(org.datanucleus.state.ObjectProvider op)voiddeleteObjects(org.datanucleus.state.ObjectProvider... ops)voidfetchObject(org.datanucleus.state.ObjectProvider op, int[] fieldNumbers)ObjectfindObject(org.datanucleus.ExecutionContext ec, Object id)protected voidgetColumnNamesForEmbeddedMember(org.datanucleus.store.schema.table.Table table, List<org.datanucleus.metadata.AbstractMemberMetaData> mmds, List<String> colNames, org.datanucleus.ExecutionContext ec)Convenience method to populate the "colNames" argument list with column names for the specified embedded field.protected StringgetInsertStatementForClass(org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.store.schema.table.Table table, Map<String,Object> colValuesByName, org.datanucleus.ExecutionContext ec)Method to create the INSERT statement for an object of the specified class.protected Object[]getPkValuesForStatement(org.datanucleus.state.ObjectProvider op, org.datanucleus.store.schema.table.Table table, org.datanucleus.ClassLoaderResolver clr)Convenience method to extract the pk values to input into an LOCATE/UPDATE/DELETE/FETCH statementprotected List<org.datanucleus.store.schema.table.Column>getPrimaryKeyColumns(org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.store.schema.table.Table table, org.datanucleus.ClassLoaderResolver clr)protected StringgetVersionStatement(org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.store.schema.table.Table table, org.datanucleus.ClassLoaderResolver clr)voidinsertObject(org.datanucleus.state.ObjectProvider op)voidinsertObjects(org.datanucleus.state.ObjectProvider... ops)voidlocateObject(org.datanucleus.state.ObjectProvider op)voidlocateObjects(org.datanucleus.state.ObjectProvider[] ops)protected voidperformOptimisticCheck(org.datanucleus.state.ObjectProvider op, com.datastax.oss.driver.api.core.CqlSession session, org.datanucleus.store.schema.table.Table table, org.datanucleus.metadata.VersionMetaData vermd, Object currentVersion)voidupdateObject(org.datanucleus.state.ObjectProvider op, int[] fieldNumbers)-
Methods inherited from class org.datanucleus.store.AbstractPersistenceHandler
assertReadOnlyForUpdateOfObject, findObjectForUnique
-
-
-
-
Method Detail
-
close
public void close()
-
insertObject
public void insertObject(org.datanucleus.state.ObjectProvider op)
-
getInsertStatementForClass
protected String getInsertStatementForClass(org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.store.schema.table.Table table, Map<String,Object> colValuesByName, org.datanucleus.ExecutionContext ec)
Method to create the INSERT statement for an object of the specified class. Will add all columns for the class and all superclasses, plus any surrogate datastore-id, version, discriminator. Will have the formINSERT INTO {schema}.{table} (COL1,COL2,...) VALUES(?,?,...)All columns are included and if the field is null then at insert CQL will delete the associated cell for the null column.- Parameters:
cmd- Metadata for the classtable- Table used for persistencecolValuesByName- Map of column values keyed by the column nameec- ExecutionContext- Returns:
- The INSERT statement
-
insertObjects
public void insertObjects(org.datanucleus.state.ObjectProvider... ops)
-
updateObject
public void updateObject(org.datanucleus.state.ObjectProvider op, int[] fieldNumbers)
-
deleteObject
public void deleteObject(org.datanucleus.state.ObjectProvider op)
-
deleteObjects
public void deleteObjects(org.datanucleus.state.ObjectProvider... ops)
-
fetchObject
public void fetchObject(org.datanucleus.state.ObjectProvider op, int[] fieldNumbers)
-
getColumnNamesForEmbeddedMember
protected void getColumnNamesForEmbeddedMember(org.datanucleus.store.schema.table.Table table, List<org.datanucleus.metadata.AbstractMemberMetaData> mmds, List<String> colNames, org.datanucleus.ExecutionContext ec)Convenience method to populate the "colNames" argument list with column names for the specified embedded field.- Parameters:
table- Table that we are usingmmds- Metadata defining the embedded field (possibly nested, maybe multiple levels).colNames- List that will have column names added to itec- ExecutionContext
-
locateObject
public void locateObject(org.datanucleus.state.ObjectProvider op)
-
locateObjects
public void locateObjects(org.datanucleus.state.ObjectProvider[] ops)
-
getVersionStatement
protected String getVersionStatement(org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.store.schema.table.Table table, org.datanucleus.ClassLoaderResolver clr)
-
getPkValuesForStatement
protected Object[] getPkValuesForStatement(org.datanucleus.state.ObjectProvider op, org.datanucleus.store.schema.table.Table table, org.datanucleus.ClassLoaderResolver clr)
Convenience method to extract the pk values to input into an LOCATE/UPDATE/DELETE/FETCH statement- Parameters:
op- ObjectProvider we are interested intable- The tableclr- ClassLoader resolver- Returns:
- The pk values
-
getPrimaryKeyColumns
protected List<org.datanucleus.store.schema.table.Column> getPrimaryKeyColumns(org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.store.schema.table.Table table, org.datanucleus.ClassLoaderResolver clr)
-
performOptimisticCheck
protected void performOptimisticCheck(org.datanucleus.state.ObjectProvider op, com.datastax.oss.driver.api.core.CqlSession session, org.datanucleus.store.schema.table.Table table, org.datanucleus.metadata.VersionMetaData vermd, Object currentVersion)
-
-