Class ReactiveNeo4jTransactionManager
java.lang.Object
org.springframework.transaction.reactive.AbstractReactiveTransactionManager
org.springframework.data.neo4j.core.transaction.ReactiveNeo4jTransactionManager
- All Implemented Interfaces:
Serializable,Aware,ApplicationContextAware,ConfigurableTransactionManager,ReactiveTransactionManager,TransactionManager
@API(status=STABLE,
since="6.0")
public final class ReactiveNeo4jTransactionManager
extends AbstractReactiveTransactionManager
implements ApplicationContextAware
Neo4j specific implementation of an
AbstractReactiveTransactionManager.- Since:
- 6.0
- Author:
- Gerrit Meier, Michael J. Simons
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classA builder forReactiveNeo4jTransactionManager.Nested classes/interfaces inherited from class org.springframework.transaction.reactive.AbstractReactiveTransactionManager
AbstractReactiveTransactionManager.SuspendedResourcesHolder -
Field Summary
Fields inherited from class org.springframework.transaction.reactive.AbstractReactiveTransactionManager
logger -
Constructor Summary
ConstructorsConstructorDescriptionReactiveNeo4jTransactionManager(org.neo4j.driver.Driver driver) This will create a transaction manager for the default database.ReactiveNeo4jTransactionManager(org.neo4j.driver.Driver driver, ReactiveDatabaseSelectionProvider databaseSelectionProvider) This will create a transaction manager targeting whatever the database selection provider determines.ReactiveNeo4jTransactionManager(org.neo4j.driver.Driver driver, ReactiveDatabaseSelectionProvider databaseSelectionProvider, Neo4jBookmarkManager bookmarkManager) This constructor can be used to configure the bookmark manager being used. -
Method Summary
Modifier and TypeMethodDescriptiondoBegin(TransactionSynchronizationManager transactionSynchronizationManager, Object transaction, TransactionDefinition transactionDefinition) doCleanupAfterCompletion(TransactionSynchronizationManager transactionSynchronizationManager, Object transaction) doCommit(TransactionSynchronizationManager transactionSynchronizationManager, GenericReactiveTransaction genericReactiveTransaction) protected ObjectdoGetTransaction(TransactionSynchronizationManager transactionSynchronizationManager) doResume(TransactionSynchronizationManager synchronizationManager, @Nullable Object transaction, Object suspendedResources) doRollback(TransactionSynchronizationManager transactionSynchronizationManager, GenericReactiveTransaction genericReactiveTransaction) doSetRollbackOnly(TransactionSynchronizationManager synchronizationManager, GenericReactiveTransaction genericReactiveTransaction) doSuspend(TransactionSynchronizationManager synchronizationManager, Object transaction) protected booleanisExistingTransaction(Object transaction) static Mono<org.neo4j.driver.reactivestreams.ReactiveTransaction>retrieveReactiveTransaction(org.neo4j.driver.Driver driver, DatabaseSelection targetDatabase, UserSelection asUser) Retrieves a new transaction.voidsetApplicationContext(ApplicationContext applicationContext) with(org.neo4j.driver.Driver driver) Start building a new transaction manager for the given driver instance.Methods inherited from class org.springframework.transaction.reactive.AbstractReactiveTransactionManager
commit, getReactiveTransaction, getTransactionExecutionListeners, prepareForCommit, registerAfterCompletionWithExistingTransaction, rollback, setTransactionExecutionListenersMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.transaction.ConfigurableTransactionManager
addListener
-
Constructor Details
-
ReactiveNeo4jTransactionManager
public ReactiveNeo4jTransactionManager(org.neo4j.driver.Driver driver) This will create a transaction manager for the default database.- Parameters:
driver- a driver instance
-
ReactiveNeo4jTransactionManager
public ReactiveNeo4jTransactionManager(org.neo4j.driver.Driver driver, ReactiveDatabaseSelectionProvider databaseSelectionProvider) This will create a transaction manager targeting whatever the database selection provider determines.- Parameters:
driver- a driver instancedatabaseSelectionProvider- the database selection provider to determine the database in which the transactions should happen
-
ReactiveNeo4jTransactionManager
public ReactiveNeo4jTransactionManager(org.neo4j.driver.Driver driver, ReactiveDatabaseSelectionProvider databaseSelectionProvider, Neo4jBookmarkManager bookmarkManager) This constructor can be used to configure the bookmark manager being used. It is useful when you need to seed the bookmark manager or if you want to capture new bookmarks.- Parameters:
driver- a driver instancedatabaseSelectionProvider- the database selection provider to determine the database in which the transactions should happenbookmarkManager- a bookmark manager
-
-
Method Details
-
with
@API(status=STABLE, since="6.2") public static ReactiveNeo4jTransactionManager.Builder with(org.neo4j.driver.Driver driver) Start building a new transaction manager for the given driver instance.- Parameters:
driver- a fixed driver instance.- Returns:
- a builder for a transaction manager
-
retrieveReactiveTransaction
public static Mono<org.neo4j.driver.reactivestreams.ReactiveTransaction> retrieveReactiveTransaction(org.neo4j.driver.Driver driver, DatabaseSelection targetDatabase, UserSelection asUser) Retrieves a new transaction.- Parameters:
driver- the driver that has been used as a synchronization object.targetDatabase- the target databaseasUser- the target user- Returns:
- an optional managed transaction or null if the method hasn't been called inside an ongoing Spring transaction
-
setApplicationContext
- Specified by:
setApplicationContextin interfaceApplicationContextAware- Throws:
BeansException
-
doGetTransaction
protected Object doGetTransaction(TransactionSynchronizationManager transactionSynchronizationManager) throws TransactionException - Specified by:
doGetTransactionin classAbstractReactiveTransactionManager- Throws:
TransactionException
-
isExistingTransaction
- Overrides:
isExistingTransactionin classAbstractReactiveTransactionManager- Throws:
TransactionException
-
doBegin
protected Mono<Void> doBegin(TransactionSynchronizationManager transactionSynchronizationManager, Object transaction, TransactionDefinition transactionDefinition) throws TransactionException - Specified by:
doBeginin classAbstractReactiveTransactionManager- Throws:
TransactionException
-
doCleanupAfterCompletion
protected Mono<Void> doCleanupAfterCompletion(TransactionSynchronizationManager transactionSynchronizationManager, Object transaction) - Overrides:
doCleanupAfterCompletionin classAbstractReactiveTransactionManager
-
doCommit
protected Mono<Void> doCommit(TransactionSynchronizationManager transactionSynchronizationManager, GenericReactiveTransaction genericReactiveTransaction) throws TransactionException - Specified by:
doCommitin classAbstractReactiveTransactionManager- Throws:
TransactionException
-
doRollback
protected Mono<Void> doRollback(TransactionSynchronizationManager transactionSynchronizationManager, GenericReactiveTransaction genericReactiveTransaction) throws TransactionException - Specified by:
doRollbackin classAbstractReactiveTransactionManager- Throws:
TransactionException
-
doSuspend
protected Mono<Object> doSuspend(TransactionSynchronizationManager synchronizationManager, Object transaction) throws TransactionException - Overrides:
doSuspendin classAbstractReactiveTransactionManager- Throws:
TransactionException
-
doResume
protected Mono<Void> doResume(TransactionSynchronizationManager synchronizationManager, @Nullable Object transaction, Object suspendedResources) throws TransactionException - Overrides:
doResumein classAbstractReactiveTransactionManager- Throws:
TransactionException
-
doSetRollbackOnly
protected Mono<Void> doSetRollbackOnly(TransactionSynchronizationManager synchronizationManager, GenericReactiveTransaction genericReactiveTransaction) throws TransactionException - Overrides:
doSetRollbackOnlyin classAbstractReactiveTransactionManager- Throws:
TransactionException
-