Я только что начал играть с новым драйвером neo4j для python и полностью застрял в транзакциях. Как проверить успешную транзакцию? Насколько я могу сказать, функция commit
не вызывает автоматически ошибки, т. Е. Если, например, я предоставляю ей неверный запрос Cypher, я не получаю никакой информации об этом.драйвер Neo4j - подтверждение транзакции
Я попытался чтением last_result
аргумента от Session
объекта и придумал STH как:
import neo4j.v1 as neo
def db_confirm_transaction_success(session):
try:
w = list(session.last_result)
return True
except neo.CypherError as e:
session.last_result._consumed = True
return False
except neo.ResultError as e:
session.last_result._consumed = True
return False
Это вид работает ... Тем не менее, это требует изменения частных атрибутов и просто не кажется правильным/верный. Должно быть более простое и элегантное решение.
Заранее спасибо за помощь.
Редактировать: Только, чтобы уточнить, атрибут Transaction.success
указывает, должна ли транзакция быть совершена или откат. Однако, например, Ошибки Cypher можно идентифицировать как опоздание времени выполнения запросов.