/** * Return the insert relation query. * @param type $entity * @param Relation $relation * @return string $query. */ public static function buildRelationQuery($entity, Relation $relation) { $relQuery = ""; $getid = "getId"; if ($relation->getCardinality() == Relation::$manyToMany) { $m = "get" . $relation->getName(); $relQuery .= "INSERT INTO " . $relation->getTable() . " (" . $relation->getLocalColumn() . ", " . $relation->getForeignColumn() . ") "; $relQuery .= "VALUES (:" . $relation->getLocalColumn() . ", :" . $relation->getForeignColumn() . ");"; } if ($relation->getCardinality() == Relation::$oneToMany) { $relMapper = MapperBuilder::buildFromName($this->mapping, $relation->getEntity()); $m = "get" . $relation->getName(); foreach ($entity->{$m}() as $rel) { $setid = "set" . $relMapper->getNameForColumn($relation->getForeignColumn()); $rel->{$setid}($entity->{$getid}()); $relQuery .= $this->buildInsertQuery($rel); } } return $relQuery; }