私はgraphaware/neo4j-php-client 4.5.1をPHP 5.6.24でNeo4j 3.0.4とともに使用しています。neo4j-php-clientで失敗したトランザクションを検出する方法
トランザクションが失敗したかどうかを調べる方法はわかりません。
たとえば、まだ関係があるノードを削除しようとします。私はこの単純なクエリでDELETEを実行する場合:
[GraphAware\Neo4j\Client\Exception\Neo4jException]
org.neo4j.kernel.api.exceptions.ConstraintViolationTransactionFailureException:
Cannot delete node<31>, because it still has relationships.
To delete this node, you must first delete its relationships.
しかし、私はトランザクション内の同じクエリラップ:
を$client->run
(
'MATCH (node { name: {name} }) DELETE node',
[ 'name' => 'Fred' ]
);
...私は私が期待される動作である、この例外を取得します
$transaction = $client->transaction();
$transaction->push
(
'MATCH (node { name: {name} }) DELETE node',
[ 'name' => 'Fred' ]
);
$results = $transaction->commit();
foreach ($results as $result)
{
$summary = $result->summarize();
$stats = $summary->updateStatistics();
printf("Nodes deleted: %d\n", $stats->nodesDeleted());
}
printf("Transaction status: %s\n", $transaction->status());
...のNeo4jは、ノードを削除しませんが、私はこの(成功を示唆)の代わりに例外を参照してください。
0123を何かが見つからない、またはこれがバグですか?前もって感謝します!
優れており、4.5.3で期待どおりに動作します!非常に速い応答とソリューションをありがとう! –