Module rusted_cypher::cypher::transaction [] [src]

Transaction management through neo4j's transaction endpoint

The recommended way to start a transaction is through the GraphClient

Examples

Starting a transaction

let graph = GraphClient::connect(URL).unwrap();

let mut transaction = graph.cypher().transaction();
transaction.add_statement("MATCH (n:TRANSACTION) RETURN n");

let (transaction, results) = transaction.begin().unwrap();

Statement is optional when beggining a transaction

let (transaction, _) = graph.cypher().transaction()
    .begin().unwrap();

Send queries in a started transaction

// Send a single query
let result = transaction.exec("MATCH (n:TRANSACTION) RETURN n").unwrap();

// Send multiple queries
let results = transaction
    .with_statement("MATCH (n:TRANSACTION) RETURN n")
    .with_statement("MATCH (n:OTHER_TRANSACTION) RETURN n")
    .send().unwrap();

Commit a transaction

transaction.exec("CREATE (n:TRANSACTION)").unwrap();
transaction.commit().unwrap();

// Send more statements when commiting
let results = transaction
    .with_statement("MATCH (n:TRANSACTION) RETURN n")
    .send().unwrap();

Rollback a transaction

transaction.exec("CREATE (n:TRANSACTION)").unwrap();
transaction.rollback().unwrap();

Structs

Created
Started
Transaction

Provides methods to interact with a transaction