Neo4j.Transaction (Neo4jEx v0.1.4)
View SourceNeo4j Transaction for executing queries within a transactional context.
Transactions provide ACID guarantees and allow you to group multiple queries together. They can be committed or rolled back as a unit.
Usage
# Using driver transaction helper
result = Neo4j.Driver.transaction(driver, fn tx ->
Neo4j.Transaction.run(tx, "CREATE (p:Person {name: $name})", %{name: "Alice"})
Neo4j.Transaction.run(tx, "CREATE (p:Person {name: $name})", %{name: "Bob"})
# Transaction is automatically committed if function succeeds
end)
# Manual transaction management
{:ok, session} = Neo4j.Driver.create_session(driver)
{:ok, tx} = Neo4j.Session.begin_transaction(session)
{:ok, result} = Neo4j.Transaction.run(tx, "CREATE (p:Person {name: $name})", %{name: "Carol"})
:ok = Neo4j.Transaction.commit(tx)
Neo4j.Session.close(session)
Summary
Functions
Commits the transaction.
Executes a function within a transaction context.
Gets transaction information.
Rolls back the transaction.
Executes a Cypher query within the transaction.
Functions
Commits the transaction.
Parameters
- transaction: Transaction to commit
Returns
:okon success{:error, reason}on failure
Examples
:ok = Neo4j.Transaction.commit(tx)
Executes a function within a transaction context.
The transaction is automatically committed if the function succeeds, or rolled back if it raises an exception.
Parameters
- session: Session to create transaction in
- fun: Function that receives the transaction as an argument
Returns
- Result of the function on success
{:error, reason}on failure
Examples
result = Neo4j.Transaction.execute(session, fn tx ->
Neo4j.Transaction.run(tx, "CREATE (p:Person {name: $name})", %{name: "Alice"})
Neo4j.Transaction.run(tx, "MATCH (p:Person) RETURN count(p)")
end)
Gets transaction information.
Parameters
- transaction: Transaction map
Returns
Transaction information map
Rolls back the transaction.
Parameters
- transaction: Transaction to rollback
Returns
:okon success{:error, reason}on failure
Examples
:ok = Neo4j.Transaction.rollback(tx)
Executes a Cypher query within the transaction.
Parameters
- transaction: Transaction map
- query: Cypher query string
- params: Query parameters map (default: %{})
- opts: Query options (default: [])
Options
:timeout- Query timeout in milliseconds
Returns
{:ok, results}on success where results is a list of records{:error, reason}on failure
Examples
{:ok, results} = Neo4j.Transaction.run(tx, "MATCH (n:Person) RETURN n.name")
{:ok, results} = Neo4j.Transaction.run(tx, "CREATE (p:Person {name: $name})", %{name: "Alice"})