All the manipulation of a database must be enclosed within a session.
A Session should be initiated from a Database
instance. This is where you can get a Graph instance which
represents the persistent graph (the graph database).
The Graph instance is needed to manipulate the
Database as a graph.
Also, temporary data is associated to the
Session, thus when a Session is closed, all
the temporary data associated to that Session is removed
too. Objects or Values instances or even
session attributes are an example of temporary data.
You must take into account the fact that a Session is
exclusive for a thread, we do not encourage sharing it among threads as
it will definitely raise unexpected errors.
A Session manages the transactions, allowing the
execution of a set of graph operations as a single execution unit. A
transaction encloses all the graph operations between the
Session Begin and Commit or
Rollback methods, or just a single operation in autocommit
mode (where no begin/commit/rollback methods are used).
Initially, a transaction starts as a read transaction and only when
there is a call to a method which updates the persistent graph database,
it automatically becomes a write transaction. To become a write
transaction it must wait until all other read transactions have
finished. But a transaction can also be started as a write transaction
using the BeginUpdate method instead of
Begin.
Since HelloSparksee is a simple example we are going to use autocommit because we don’t need more complex transactions.
For more information about Sparksee transactions please take a look
at the Session class in the reference documentation of your
chosen Sparksee API.
Session sess = db.newSession();
Graph g = sess.getGraph();Session sess = db.NewSession();
Graph g = sess.GetGraph();Session *sess = db->NewSession();
Graph *g = sess->GetGraph();sess = db.new_session()
graph = sess.get_graph()STSSession *sess = [db createSession];
STSGraph *g = [sess getGraph];