friends = new \Doctrine\Common\Collections\ArrayCollection; } public function getId() { return $this->id; } public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } public function getSpouse() { return $this->spouse; } public function getFriends() { return $this->friends; } public function addFriend(CompanyPerson $friend) { if ( ! $this->friends->contains($friend)) { $this->friends->add($friend); $friend->addFriend($this); } } public function setSpouse(CompanyPerson $spouse) { if ($spouse !== $this->spouse) { $this->spouse = $spouse; $this->spouse->setSpouse($this); } } public static function loadMetadata(\Doctrine\ORM\Mapping\ClassMetadataInfo $metadata) { $metadata->setPrimaryTable( [ 'name' => 'company_person', ] ); $metadata->addNamedNativeQuery( [ 'name' => 'fetchAllWithResultClass', 'query' => 'SELECT id, name, discr FROM company_persons ORDER BY name', 'resultClass' => 'Doctrine\\Tests\\Models\\Company\\CompanyPerson', ] ); $metadata->addNamedNativeQuery( [ 'name' => 'fetchAllWithSqlResultSetMapping', 'query' => 'SELECT id, name, discr AS discriminator FROM company_persons ORDER BY name', 'resultSetMapping' => 'mappingFetchAll', ] ); $metadata->addSqlResultSetMapping( [ 'name' => 'mappingFetchAll', 'columns' => [], 'entities' => [ [ 'fields' => [ [ 'name' => 'id', 'column' => 'id', ], [ 'name' => 'name', 'column' => 'name', ], ], 'entityClass' => 'Doctrine\Tests\Models\Company\CompanyPerson', 'discriminatorColumn' => 'discriminator', ], ], ] ); } }