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.AbstractPersistenceHandler
Handler for basic persistence operations with Cassandra datastores.
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,String>
deleteStatementByClassName
protected Map<String,String>
getVersionStatementByClassName
protected Map<String,String>
insertStatementByClassName
protected 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 void
close()
void
deleteObject(org.datanucleus.state.ObjectProvider op)
void
deleteObjects(org.datanucleus.state.ObjectProvider... ops)
void
fetchObject(org.datanucleus.state.ObjectProvider op, int[] fieldNumbers)
Object
findObject(org.datanucleus.ExecutionContext ec, Object id)
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.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.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 String
getVersionStatement(org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.store.schema.table.Table table, org.datanucleus.ClassLoaderResolver clr)
void
insertObject(org.datanucleus.state.ObjectProvider op)
void
insertObjects(org.datanucleus.state.ObjectProvider... ops)
void
locateObject(org.datanucleus.state.ObjectProvider op)
void
locateObjects(org.datanucleus.state.ObjectProvider[] ops)
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)
void
updateObject(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)
-
-