public class CqlSessionFactoryBean extends Object implements FactoryBean<com.datastax.oss.driver.api.core.CqlSession>, InitializingBean, DisposableBean, PersistenceExceptionTranslator
CqlSession, which is a thread-safe singleton. As such, it is
sufficient to have one CqlSession per application and keyspace.| Modifier and Type | Field and Description |
|---|---|
static String |
CASSANDRA_SYSTEM_SESSION |
static String |
DEFAULT_CONTACT_POINTS |
static int |
DEFAULT_PORT |
protected Log |
log |
OBJECT_TYPE_ATTRIBUTE| Constructor and Description |
|---|
CqlSessionFactoryBean() |
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet() |
protected com.datastax.oss.driver.api.core.CqlSessionBuilder |
buildBuilder() |
protected com.datastax.oss.driver.api.core.CqlSession |
buildSession(com.datastax.oss.driver.api.core.CqlSessionBuilder sessionBuilder)
Build a
Session to the user-defined Keyspace or the default Keyspace if
the user did not specify a Keyspace by name. |
protected com.datastax.oss.driver.api.core.CqlSession |
buildSystemSession(com.datastax.oss.driver.api.core.CqlSessionBuilder sessionBuilder)
Build the Cassandra
System Session. |
protected void |
closeSession()
Close the regular session object.
|
protected void |
closeSystemSession()
Close the system session object.
|
protected void |
createTables(boolean drop,
boolean dropUnused,
boolean ifNotExists)
Perform schema actions.
|
void |
destroy() |
CassandraConverter |
getConverter() |
List<KeyspaceActions> |
getKeyspaceActions() |
protected String |
getKeyspaceName()
Gets the name of the Cassandra Keyspace to connect to.
|
Set<KeyspaceActionSpecification> |
getKeyspaceSpecifications() |
protected CassandraMappingContext |
getMappingContext() |
com.datastax.oss.driver.api.core.CqlSession |
getObject() |
Class<? extends com.datastax.oss.driver.api.core.CqlSession> |
getObjectType() |
SchemaAction |
getSchemaAction() |
protected com.datastax.oss.driver.api.core.CqlSession |
getSession()
Returns a reference to the connected Cassandra
CqlSession. |
List<String> |
getShutdownScripts()
Deprecated.
Use
SessionFactoryInitializer or
SessionFactoryFactoryBean with
KeyspacePopulator instead. |
List<String> |
getStartupScripts()
Deprecated.
Use
SessionFactoryInitializer or
SessionFactoryFactoryBean with
KeyspacePopulator instead. |
boolean |
isConnected()
Null-safe operation to determine whether the Cassandra
CqlSession is connected or not. |
protected void |
performSchemaAction()
Perform the configured
SchemaAction using CassandraMappingContext metadata. |
void |
setContactPoints(Collection<InetSocketAddress> contactPoints)
Set a collection of the contact points (hosts) to connect to.
|
void |
setContactPoints(String contactPoints)
Set a comma-delimited string of the contact points (hosts) to connect to.
|
void |
setConverter(CassandraConverter converter)
Deprecated.
|
void |
setKeyspaceActions(List<KeyspaceActions> keyspaceActions)
Set a
List of KeyspaceActions to be executed on initialization. |
void |
setKeyspaceAlterations(List<AlterKeyspaceSpecification> specifications)
|
void |
setKeyspaceCreations(List<CreateKeyspaceSpecification> specifications)
|
void |
setKeyspaceDrops(List<DropKeyspaceSpecification> specifications)
|
void |
setKeyspaceName(String keyspaceName)
Sets the name of the Cassandra Keyspace to connect to.
|
void |
setKeyspaceShutdownScripts(List<String> scripts)
Set a
List of raw CQL statements that are executed in the scope of the system keyspace when
this factory is destroyed. |
void |
setKeyspaceSpecifications(List<? extends KeyspaceActionSpecification> keyspaceSpecifications) |
void |
setKeyspaceStartupScripts(List<String> scripts)
Set a
List of raw CQL statements that are executed in the scope of the system keyspace when
this factory is initialized. |
void |
setLocalDatacenter(String localDatacenter)
Sets the name of the local datacenter.
|
void |
setPassword(String password)
Set the password to use.
|
void |
setPort(int port)
Set the port for the contact points.
|
void |
setSchemaAction(SchemaAction schemaAction)
Deprecated.
|
void |
setSessionBuilderConfigurer(SessionBuilderConfigurer sessionBuilderConfigurer)
Sets the
SessionBuilderConfigurer to configure the
SessionBuilder. |
void |
setShutdownScripts(List<String> scripts)
Deprecated.
Use
SessionFactoryInitializer or
SessionFactoryFactoryBean with
KeyspacePopulator instead. |
void |
setStartupScripts(List<String> scripts)
Deprecated.
Use
SessionFactoryInitializer or
SessionFactoryFactoryBean with
KeyspacePopulator instead. |
void |
setSuspendLifecycleSchemaRefresh(boolean suspendLifecycleSchemaRefresh)
Set whether to suspend schema refresh settings during
afterPropertiesSet() and destroy()
lifecycle callbacks. |
void |
setUsername(String username)
Set the username to use.
|
DataAccessException |
translateExceptionIfPossible(RuntimeException e) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitisSingletonpublic static final String CASSANDRA_SYSTEM_SESSION
public static final String DEFAULT_CONTACT_POINTS
public static final int DEFAULT_PORT
protected final Log log
public boolean isConnected()
CqlSession is connected or not.CqlSession is connected.AsyncAutoCloseable.isClosed(),
getObject()public void setContactPoints(String contactPoints)
localhost; see
DEFAULT_CONTACT_POINTS. Contact points may use the form host:port, or a simple host to use
the configured port.contactPoints - the contact points used by the new cluster, must not be null.public void setContactPoints(Collection<InetSocketAddress> contactPoints)
localhost; see
DEFAULT_CONTACT_POINTS.contactPoints - the contact points used by the new cluster, must not be null. Use
unresolved addresses to delegate hostname
resolution to the driver.public void setLocalDatacenter(@Nullable String localDatacenter)
localDatacenter - a String indicating the name of the local datacenter.public void setPort(int port)
9042, see DEFAULT_PORT.port - the port used by the new cluster.public void setUsername(String username)
username - The username to set.public void setPassword(String password)
password - The password to set.@Deprecated public void setConverter(CassandraConverter converter)
SessionFactoryFactoryBean with
SessionFactoryFactoryBean.setConverter(CassandraConverter) instead.CassandraConverter to use. Schema actions will derive table and user type information from the
CassandraMappingContext inside converter.converter - must not be null.@Nullable public CassandraConverter getConverter()
CassandraConverter.public void setKeyspaceActions(List<KeyspaceActions> keyspaceActions)
List of KeyspaceActions to be executed on initialization. Keyspace actions may contain create
and drop specifications.keyspaceActions - the List of KeyspaceActions.public List<KeyspaceActions> getKeyspaceActions()
List of KeyspaceActions.public void setKeyspaceAlterations(List<AlterKeyspaceSpecification> specifications)
List of alter keyspace specifications that are executed when this
factory is initialized. Alter keyspace
specifications are executed on a system session with no keyspace set, before executing
setStartupScripts(List).specifications - the List of create keyspace specifications.public void setKeyspaceCreations(List<CreateKeyspaceSpecification> specifications)
List of create keyspace specifications that are executed when
this factory is initialized. Create keyspace
specifications are executed on a system session with no keyspace set, before executing
setStartupScripts(List).specifications - the List of create keyspace specifications.public void setKeyspaceDrops(List<DropKeyspaceSpecification> specifications)
List of drop keyspace specifications that are executed when this
factory is destroyed. Drop keyspace specifications are
executed on a system session with no keyspace set, before executing setShutdownScripts(List).specifications - the List of drop keyspace specifications.public void setKeyspaceName(@Nullable String keyspaceName)
keyspaceName - a String indicating the name of the Keyspace in which to connect.getKeyspaceName()@Nullable protected String getKeyspaceName()
setKeyspaceName(String)public void setKeyspaceSpecifications(List<? extends KeyspaceActionSpecification> keyspaceSpecifications)
keyspaceSpecifications - The KeyspaceActionSpecification to set.public Set<KeyspaceActionSpecification> getKeyspaceSpecifications()
KeyspaceActionSpecification associated with this factory.public void setKeyspaceStartupScripts(List<String> scripts)
List of raw CQL statements that are executed in the scope of the system keyspace when
this factory is initialized. Scripts are executed on a system session with no
keyspace set, after executing setKeyspaceCreations(List).scripts - the scripts to execute on startuppublic void setKeyspaceShutdownScripts(List<String> scripts)
List of raw CQL statements that are executed in the scope of the system keyspace when
this factory is destroyed. Drop keyspace specifications are
executed on a system session with no keyspace set, after executing setKeyspaceDrops(List).scripts - the scripts to execute on shutdownprotected CassandraMappingContext getMappingContext()
CassandraMappingContext.@Deprecated public void setSchemaAction(SchemaAction schemaAction)
SessionFactoryFactoryBean with
SessionFactoryFactoryBean.setSchemaAction(SchemaAction) instead.SchemaAction.schemaAction - must not be null.public SchemaAction getSchemaAction()
SchemaAction.public void setSuspendLifecycleSchemaRefresh(boolean suspendLifecycleSchemaRefresh)
afterPropertiesSet() and destroy()
lifecycle callbacks. Disabled by default to use schema metadata settings of the session configuration. When enabled
(set to true), then schema refresh during lifecycle methods is suspended until finishing schema actions to
avoid periodic schema refreshes for each DDL statement.
Suspending schema refresh can be useful to delay schema agreement until the entire schema is created. Note that
disabling schema refresh may interfere with schema actions. SchemaAction.RECREATE_DROP_UNUSED and
mapping-based schema creation rely on schema metadata.
suspendLifecycleSchemaRefresh - true to suspend the schema refresh during lifecycle callbacks;
false otherwise to retain the session schema refresh configuration.protected com.datastax.oss.driver.api.core.CqlSession getSession()
CqlSession.CqlSession.IllegalStateException - if the Cassandra CqlSession was not properly initialized.CqlSessionpublic void setSessionBuilderConfigurer(@Nullable SessionBuilderConfigurer sessionBuilderConfigurer)
SessionBuilderConfigurer to configure the
SessionBuilder.sessionBuilderConfigurer - @Deprecated public void setStartupScripts(@Nullable List<String> scripts)
SessionFactoryInitializer or
SessionFactoryFactoryBean with
KeyspacePopulator instead.@Deprecated public List<String> getStartupScripts()
SessionFactoryInitializer or
SessionFactoryFactoryBean with
KeyspacePopulator instead.@Deprecated public void setShutdownScripts(@Nullable List<String> scripts)
SessionFactoryInitializer or
SessionFactoryFactoryBean with
KeyspacePopulator instead.@Deprecated public List<String> getShutdownScripts()
SessionFactoryInitializer or
SessionFactoryFactoryBean with
KeyspacePopulator instead.public void afterPropertiesSet()
afterPropertiesSet in interface InitializingBeanprotected com.datastax.oss.driver.api.core.CqlSessionBuilder buildBuilder()
protected com.datastax.oss.driver.api.core.CqlSession buildSystemSession(com.datastax.oss.driver.api.core.CqlSessionBuilder sessionBuilder)
System Session.sessionBuilder - CqlSessionBuilder used to a build a Cassandra CqlSession.System Session.CqlSessionBuilder,
CqlSessionprotected com.datastax.oss.driver.api.core.CqlSession buildSession(com.datastax.oss.driver.api.core.CqlSessionBuilder sessionBuilder)
Session to the user-defined Keyspace or the default Keyspace if
the user did not specify a Keyspace by name.sessionBuilder - CqlSessionBuilder used to a build a Cassandra CqlSession.CqlSession to the user-defined Keyspace.CqlSessionBuilder,
CqlSessionprotected void performSchemaAction()
SchemaAction using CassandraMappingContext metadata.protected void createTables(boolean drop,
boolean dropUnused,
boolean ifNotExists)
drop - true to drop types/tables.dropUnused - true to drop unused types/tables (i.e. types/tables not known to be used by the
CassandraMappingContext).ifNotExists - true to perform fail-safe creations by adding IF NOT EXISTS to each creation
statement.public com.datastax.oss.driver.api.core.CqlSession getObject()
getObject in interface FactoryBean<com.datastax.oss.driver.api.core.CqlSession>public Class<? extends com.datastax.oss.driver.api.core.CqlSession> getObjectType()
getObjectType in interface FactoryBean<com.datastax.oss.driver.api.core.CqlSession>@Nullable public DataAccessException translateExceptionIfPossible(RuntimeException e)
translateExceptionIfPossible in interface PersistenceExceptionTranslatorpublic void destroy()
destroy in interface DisposableBeanprotected void closeSession()
protected void closeSystemSession()
Copyright © 2011–2023 Pivotal Software, Inc.. All rights reserved.