コード例 #1
0
ファイル: InsertPersister.php プロジェクト: innmind/neo4j-onm
 /**
  * Build the whole cypher query to insert at once all new nodes and relationships
  *
  * @param MapInterface<IdentityInterface, object> $entities
  *
  * @return QueryInterface
  */
 private function queryFor(MapInterface $entities) : QueryInterface
 {
     $query = new Query();
     $this->variables = new Set('string');
     $partitions = $entities->partition(function (IdentityInterface $identity, $entity) {
         $meta = $this->metadatas->get(get_class($entity));
         return $meta instanceof Aggregate;
     });
     $partitions->get(true)->foreach(function (IdentityInterface $identity, $entity) use(&$query) {
         $query = $this->createAggregate($identity, $entity, $query);
     });
     $partitions->get(false)->foreach(function (IdentityInterface $identity, $entity) use(&$query) {
         $query = $this->createRelationship($identity, $entity, $query);
     });
     $this->variables = null;
     return $query;
 }