Вернуть значение uuid в узлах, созданных в Neo4j ogm
Я работаю Neo4j из PHP. Для генерации поля uuid в узлах я использую: neo4j-uuid. Я также использую: https://packagist.org/packages/graphaware/neo4j-php-ogm, когда я создаю узел, я не возвращаю значение, назначенное полю UUID, мне нужно сделать новый запрос, чтобы получить это значение, мне нужно автоматически гидрировать значение UUID когда объект создан, так же, как идентификатор гидратируется.
2 ответа
Из GraphAware Neo4j UUID Github Repo:
Если вы создадите узел и вернете его немедленно, его содержимое не будет отражать изменения, выполненные обработчиками событий транзакции, такими как этот, - поэтому UUID будет недоступен. Отдельный вызов должен быть сделан, чтобы получить UUID.
То есть: это ожидаемое поведение. В настоящее время вы должны сделать новый запрос, чтобы получить узел со сгенерированным свойством UUID.
Как говорится в @bruno-peres, значение uuid автоматически не гидратируется, поэтому я вызываю метод обновления EntityManager.
$this->em->persist($entity);
$this->em->flush();
$this->em->refresh($entity);
var_dump($p->getUuid())