public interface Transaction extends AutoCloseable
All database operations that access the graph, indexes, or the schema must be performed in a transaction.
 If you attempt to access the graph outside of a transaction, those operations will throw
 NotInTransactionException.
 
Transactions are bound to the thread in which they were created. Transactions can either be handled programmatically, through this interface, or by a container through the Java Transaction API (JTA). The Transaction interface makes handling programmatic transactions easier than using JTA programmatically. Here's the idiomatic use of programmatic transactions in Neo4j starting from java 7:
 
 try ( Transaction tx = graphDb.beginTx() )
 {
     // operations on the graph
     // ...
     tx.success();
 }
 
 
 
 Let's walk through this example line by line. First we retrieve a Transaction
 object by invoking the GraphDatabaseService.beginTx() factory method.
 This creates a new transaction which has internal state to keep
 track of whether the current transaction is successful. Then we wrap all
 operations that modify the graph in a try-finally block with the transaction
 as resource. At the end of the block, we invoke the tx.success()
 method to indicate that the transaction is successful. As we exit the block,
 the transaction will automatically be closed where tx.close()
 will be called and commit the transaction if the internal state indicates success
 or else mark it for rollback.
 
 If an exception is raised in the try-block, success() will never be
 invoked and the internal state of the transaction object will cause
 close() to roll back the transaction. This is very important:
 unless success() is invoked, the transaction will fail upon
 close(). A transaction can be explicitly marked for rollback by
 invoking the failure() method.
 
Read operations inside of a transaction will also read uncommitted data from the same transaction.
Here's the idiomatic use of programmatic transactions in Neo4j on java 6 or earlier:
 
 Transaction tx = graphDb.beginTx();
 try
 {
     // operations on the graph
     // ...
     tx.success();
 }
 finally
 {
     tx.close();
 }
 
 
 
 All ResourceIterables that where returned from operations executed inside a transaction
 will be automatically closed when the transaction is committed or rolled back.
 Note however, that the ResourceIterator should be closed as soon as
 possible if you don't intend to exhaust the iterator.
| Modifier and Type | Method and Description | 
|---|---|
Lock | 
acquireReadLock(PropertyContainer entity)
Acquires a read lock for  
entity for this transaction. | 
Lock | 
acquireWriteLock(PropertyContainer entity)
Acquires a write lock for  
entity for this transaction. | 
void | 
close()
 | 
void | 
failure()
Marks this transaction as failed, which means that it will
 unconditionally be rolled back when  
close() is called. | 
void | 
success()
 | 
void | 
terminate()
Marks this transaction as terminated, which means that it will be, much like in the case of failure,
 unconditionally rolled back when  
close() is called. | 
void terminate()
close() is called. Once this method has been invoked, it doesn't matter
 if success() is invoked afterwards -- the transaction will still be rolled back.
 Additionally, terminating a transaction causes all subsequent operations carried out within that
 transaction to throw a TransactionTerminatedException in the owning thread.
 Note that, unlike the other transaction operations, this method can be called from threads other than
 the owning thread of the transaction. When this method is called from a different thread,
 it signals the owning thread to terminate the transaction and returns immediately.
 Calling this method on an already closed transaction has no effect.void failure()
void success()
void close()
success() or failure() has been previously invoked.
 All ResourceIterables that where returned from operations executed inside this
 transaction will be automatically closed by this method.
 This method comes from AutoCloseable so that a Transaction can participate
 in try-with-resource statements. It will not throw any declared exception.
 Invoking this method (which is unnecessary when in try-with-resource statement).close in interface AutoCloseableLock acquireWriteLock(PropertyContainer entity)
entity for this transaction.
 The lock (returned from this method) can be released manually, but
 if not it's released automatically when the transaction finishes.entity - the entity to acquire a lock for. If another transaction
 currently holds a write lock to that entity this call will wait until
 it's released.Lock which optionally can be used to release this
 lock earlier than when the transaction finishes. If not released
 (with Lock.release() it's going to be released with the
 transaction finishes.Lock acquireReadLock(PropertyContainer entity)
entity for this transaction.
 The lock (returned from this method) can be released manually, but
 if not it's released automatically when the transaction finishes.entity - the entity to acquire a lock for. If another transaction
 currently hold a write lock to that entity this call will wait until
 it's released.Lock which optionally can be used to release this
 lock earlier than when the transaction finishes. If not released
 (with Lock.release() it's going to be released with the
 transaction finishes.Copyright © 2002–2016 The Neo4j Graph Database Project. All rights reserved.