3 namespace Doctrine\Tests\Models\Company;
6 * Description of CompanyPerson
10 * @Table(name="company_persons")
11 * @InheritanceType("JOINED")
12 * @DiscriminatorColumn(name="discr", type="string")
14 * "person" = "CompanyPerson",
15 * "manager" = "CompanyManager",
16 * "employee" = "CompanyEmployee"
19 * @NamedNativeQueries({
21 * name = "fetchAllWithResultClass",
22 * resultClass = "__CLASS__",
23 * query = "SELECT id, name, discr FROM company_persons ORDER BY name"
26 * name = "fetchAllWithSqlResultSetMapping",
27 * resultSetMapping= "mappingFetchAll",
28 * query = "SELECT id, name, discr AS discriminator FROM company_persons ORDER BY name"
32 * @SqlResultSetMappings({
33 * @SqlResultSetMapping(
34 * name = "mappingFetchAll",
37 * entityClass = "__CLASS__",
38 * discriminatorColumn = "discriminator",
41 * @FieldResult("name"),
52 * @Column(type="integer")
63 * @OneToOne(targetEntity="CompanyPerson")
64 * @JoinColumn(name="spouse_id", referencedColumnName="id", onDelete="CASCADE")
69 * @ManyToMany(targetEntity="CompanyPerson")
71 * name="company_persons_friends",
73 * @JoinColumn(name="person_id", referencedColumnName="id", onDelete="CASCADE")
75 * inverseJoinColumns={
76 * @JoinColumn(name="friend_id", referencedColumnName="id", onDelete="CASCADE")
82 public function __construct() {
83 $this->friends = new \Doctrine\Common\Collections\ArrayCollection;
86 public function getId() {
90 public function getName() {
94 public function setName($name) {
98 public function getSpouse() {
102 public function getFriends() {
103 return $this->friends;
106 public function addFriend(CompanyPerson $friend) {
107 if ( ! $this->friends->contains($friend)) {
108 $this->friends->add($friend);
109 $friend->addFriend($this);
113 public function setSpouse(CompanyPerson $spouse) {
114 if ($spouse !== $this->spouse) {
115 $this->spouse = $spouse;
116 $this->spouse->setSpouse($this);
120 public static function loadMetadata(\Doctrine\ORM\Mapping\ClassMetadataInfo $metadata)
123 $metadata->setPrimaryTable(array(
124 'name' => 'company_person',
127 $metadata->addNamedNativeQuery(array (
128 'name' => 'fetchAllWithResultClass',
129 'query' => 'SELECT id, name, discr FROM company_persons ORDER BY name',
130 'resultClass' => 'Doctrine\\Tests\\Models\\Company\\CompanyPerson',
133 $metadata->addNamedNativeQuery(array (
134 'name' => 'fetchAllWithSqlResultSetMapping',
135 'query' => 'SELECT id, name, discr AS discriminator FROM company_persons ORDER BY name',
136 'resultSetMapping' => 'mappingFetchAll',
139 $metadata->addSqlResultSetMapping(array (
140 'name' => 'mappingFetchAll',
141 'columns' => array(),
142 'entities' => array ( array (
153 'entityClass' => 'Doctrine\Tests\Models\Company\CompanyPerson',
154 'discriminatorColumn' => 'discriminator',