NAME
Neo4j::Driver::Session - context of work for database interactions
VERSION
version 0.08
SYNOPSIS
use Neo4j::Driver;
my $session = Neo4j::Driver->new->basic_auth(...)->session;
# explicit transaction
my $transaction = $session->begin_transaction;
# autocommit transaction
my $result = $session->run('MATCH (m:Movie) RETURN m.name, m.year');
DESCRIPTION
Provides a context of work for database interactions.
A Session hosts a series of transactions carried out against a database. Within the database, all statements are carried out within a transaction. Within application code, however, it is not always necessary to explicitly begin a transaction. If a statement is run directly against a Session, the server will automatically BEGIN
and COMMIT
that statement within its own transaction. This type of transaction is known as an autocommit transaction.
Explicit transactions allow multiple statements to be committed as part of a single atomic operation and can be rolled back if necessary.
METHODS
Neo4j::Driver::Session implements the following methods.
begin_transaction
my $transaction = $session->begin_transaction;
Begin a new explicit Transaction.
run
my $result = $session->run('...');
Run and commit a statement using an autocommit transaction and return the result.
This method is semantically exactly equivalent to the following code, but is faster because it doesn't require an extra server roundtrip to commit the transaction.
my $transaction = $session->begin_transaction;
my $result = $transaction->run('...');
$transaction->commit;
EXPERIMENTAL FEATURES
Neo4j::Driver::Session implements the following experimental features. These are subject to unannounced modification or removal in future versions. Expect your code to break if you depend upon these features.
Calling in list context
my @records = $session->run('...');
my @results = $session->run([...]);
The run
method tries to Do What You Mean if called in list context.
Close method
close
is currently a no-op in this class.
BUGS
The implementation of sessions in this driver is incomplete. In particular, some of the official drivers implement restrictions on the count of transactions that can be used per session and offer additional methods to manage transactions.
See the TODO document and Github for details.
SEE ALSO
Neo4j::Driver, Neo4j Java Driver, Neo4j JavaScript Driver, Neo4j .NET Driver
AUTHOR
Arne Johannessen <ajnn@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2016-2018 by Arne Johannessen.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)