Class ReactiveNeo4jTransactionManager
java.lang.Object
org.springframework.transaction.reactive.AbstractReactiveTransactionManager
org.springframework.data.neo4j.core.transaction.ReactiveNeo4jTransactionManager
- All Implemented Interfaces:
Serializable
,Aware
,ApplicationContextAware
,ReactiveTransactionManager
,TransactionManager
@API(status=STABLE,
since="6.0")
public final class ReactiveNeo4jTransactionManager
extends AbstractReactiveTransactionManager
implements ApplicationContextAware
- Since:
- 6.0
- Author:
- Gerrit Meier, Michael J. Simons
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
A 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
ConstructorDescriptionReactiveNeo4jTransactionManager
(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 TypeMethodDescriptionprotected reactor.core.publisher.Mono<Void>
doBegin
(TransactionSynchronizationManager transactionSynchronizationManager, Object transaction, TransactionDefinition transactionDefinition) protected reactor.core.publisher.Mono<Void>
doCleanupAfterCompletion
(TransactionSynchronizationManager transactionSynchronizationManager, Object transaction) protected reactor.core.publisher.Mono<Void>
doCommit
(TransactionSynchronizationManager transactionSynchronizationManager, GenericReactiveTransaction genericReactiveTransaction) protected Object
doGetTransaction
(TransactionSynchronizationManager transactionSynchronizationManager) protected reactor.core.publisher.Mono<Void>
doResume
(TransactionSynchronizationManager synchronizationManager, Object transaction, Object suspendedResources) protected reactor.core.publisher.Mono<Void>
doRollback
(TransactionSynchronizationManager transactionSynchronizationManager, GenericReactiveTransaction genericReactiveTransaction) protected reactor.core.publisher.Mono<Void>
doSetRollbackOnly
(TransactionSynchronizationManager synchronizationManager, GenericReactiveTransaction genericReactiveTransaction) protected reactor.core.publisher.Mono<Object>
doSuspend
(TransactionSynchronizationManager synchronizationManager, Object transaction) protected boolean
isExistingTransaction
(Object transaction) static reactor.core.publisher.Mono<org.neo4j.driver.reactivestreams.ReactiveTransaction>
retrieveReactiveTransaction
(org.neo4j.driver.Driver driver, DatabaseSelection targetDatabase, UserSelection asUser) void
setApplicationContext
(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, prepareForCommit, registerAfterCompletionWithExistingTransaction, rollback
-
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
-
setApplicationContext
- Specified by:
setApplicationContext
in interfaceApplicationContextAware
- Throws:
BeansException
-
retrieveReactiveTransaction
public static reactor.core.publisher.Mono<org.neo4j.driver.reactivestreams.ReactiveTransaction> retrieveReactiveTransaction(org.neo4j.driver.Driver driver, DatabaseSelection targetDatabase, UserSelection asUser) - Parameters:
driver
- The driver that has been used as a synchronization object.targetDatabase
- The target database- Returns:
- An optional managed transaction or null if the method hasn't been called inside an ongoing Spring transaction
-
doGetTransaction
protected Object doGetTransaction(TransactionSynchronizationManager transactionSynchronizationManager) throws TransactionException - Specified by:
doGetTransaction
in classAbstractReactiveTransactionManager
- Throws:
TransactionException
-
isExistingTransaction
- Overrides:
isExistingTransaction
in classAbstractReactiveTransactionManager
- Throws:
TransactionException
-
doBegin
protected reactor.core.publisher.Mono<Void> doBegin(TransactionSynchronizationManager transactionSynchronizationManager, Object transaction, TransactionDefinition transactionDefinition) throws TransactionException - Specified by:
doBegin
in classAbstractReactiveTransactionManager
- Throws:
TransactionException
-
doCleanupAfterCompletion
protected reactor.core.publisher.Mono<Void> doCleanupAfterCompletion(TransactionSynchronizationManager transactionSynchronizationManager, Object transaction) - Overrides:
doCleanupAfterCompletion
in classAbstractReactiveTransactionManager
-
doCommit
protected reactor.core.publisher.Mono<Void> doCommit(TransactionSynchronizationManager transactionSynchronizationManager, GenericReactiveTransaction genericReactiveTransaction) throws TransactionException - Specified by:
doCommit
in classAbstractReactiveTransactionManager
- Throws:
TransactionException
-
doRollback
protected reactor.core.publisher.Mono<Void> doRollback(TransactionSynchronizationManager transactionSynchronizationManager, GenericReactiveTransaction genericReactiveTransaction) throws TransactionException - Specified by:
doRollback
in classAbstractReactiveTransactionManager
- Throws:
TransactionException
-
doSuspend
protected reactor.core.publisher.Mono<Object> doSuspend(TransactionSynchronizationManager synchronizationManager, Object transaction) throws TransactionException - Overrides:
doSuspend
in classAbstractReactiveTransactionManager
- Throws:
TransactionException
-
doResume
protected reactor.core.publisher.Mono<Void> doResume(TransactionSynchronizationManager synchronizationManager, Object transaction, Object suspendedResources) throws TransactionException - Overrides:
doResume
in classAbstractReactiveTransactionManager
- Throws:
TransactionException
-
doSetRollbackOnly
protected reactor.core.publisher.Mono<Void> doSetRollbackOnly(TransactionSynchronizationManager synchronizationManager, GenericReactiveTransaction genericReactiveTransaction) throws TransactionException - Overrides:
doSetRollbackOnly
in classAbstractReactiveTransactionManager
- Throws:
TransactionException
-