Вернуть значение 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())
Другие вопросы по тегам