public function beginTransaction()
{
if ($this->inTransaction) {
throw new RepositoryException('Begin transaction failed: transaction already open');
}
$this->assertLoggedIn();
try {
$this->getConnection()->beginTransaction();
$this->inTransaction = true;
} catch (\Exception $e) {
throw new RepositoryException('Begin transaction failed: ' . $e->getMessage());
}
}