225 lines
6.4 KiB
PHP
225 lines
6.4 KiB
PHP
<?php
|
|
|
|
namespace Doctrine\Tests\Models\CMS;
|
|
|
|
/**
|
|
* CmsAddress
|
|
*
|
|
* @author Roman S. Borschel
|
|
* @Entity
|
|
* @Table(name="cms_addresses")
|
|
*
|
|
* @NamedNativeQueries({
|
|
* @NamedNativeQuery(
|
|
* name = "find-all",
|
|
* resultSetMapping = "mapping-find-all",
|
|
* query = "SELECT id, country, city FROM cms_addresses"
|
|
* ),
|
|
* @NamedNativeQuery(
|
|
* name = "find-by-id",
|
|
* resultClass = "CmsAddress",
|
|
* query = "SELECT * FROM cms_addresses WHERE id = ?"
|
|
* ),
|
|
* @NamedNativeQuery(
|
|
* name = "count",
|
|
* resultSetMapping= "mapping-count",
|
|
* query = "SELECT COUNT(*) AS count FROM cms_addresses"
|
|
* )
|
|
* })
|
|
*
|
|
* @SqlResultSetMappings({
|
|
* @SqlResultSetMapping(
|
|
* name = "mapping-find-all",
|
|
* entities= {
|
|
* @EntityResult(
|
|
* entityClass = "CmsAddress",
|
|
* fields = {
|
|
* @FieldResult(name = "id", column="id"),
|
|
* @FieldResult(name = "city", column="city"),
|
|
* @FieldResult(name = "country", column="country")
|
|
* }
|
|
* )
|
|
* }
|
|
* ),
|
|
* @SqlResultSetMapping(
|
|
* name = "mapping-without-fields",
|
|
* entities= {
|
|
* @EntityResult(
|
|
* entityClass = "__CLASS__"
|
|
* )
|
|
* }
|
|
* ),
|
|
* @SqlResultSetMapping(
|
|
* name = "mapping-count",
|
|
* columns = {
|
|
* @ColumnResult(
|
|
* name = "count"
|
|
* )
|
|
* }
|
|
* )
|
|
* })
|
|
*
|
|
* @EntityListeners({"CmsAddressListener"})
|
|
*/
|
|
class CmsAddress
|
|
{
|
|
/**
|
|
* @Column(type="integer")
|
|
* @Id @GeneratedValue
|
|
*/
|
|
public $id;
|
|
|
|
/**
|
|
* @Column(length=50)
|
|
*/
|
|
public $country;
|
|
|
|
/**
|
|
* @Column(length=50)
|
|
*/
|
|
public $zip;
|
|
|
|
/**
|
|
* @Column(length=50)
|
|
*/
|
|
public $city;
|
|
|
|
/**
|
|
* Testfield for Schema Updating Tests.
|
|
*/
|
|
public $street;
|
|
|
|
/**
|
|
* @OneToOne(targetEntity="CmsUser", inversedBy="address")
|
|
* @JoinColumn(referencedColumnName="id")
|
|
*/
|
|
public $user;
|
|
|
|
public function getId() {
|
|
return $this->id;
|
|
}
|
|
|
|
public function getUser() {
|
|
return $this->user;
|
|
}
|
|
|
|
public function getCountry() {
|
|
return $this->country;
|
|
}
|
|
|
|
public function getZipCode() {
|
|
return $this->zip;
|
|
}
|
|
|
|
public function getCity() {
|
|
return $this->city;
|
|
}
|
|
|
|
public function setUser(CmsUser $user) {
|
|
if ($this->user !== $user) {
|
|
$this->user = $user;
|
|
$user->setAddress($this);
|
|
}
|
|
}
|
|
|
|
public static function loadMetadata(\Doctrine\ORM\Mapping\ClassMetadataInfo $metadata)
|
|
{
|
|
$metadata->setPrimaryTable(array(
|
|
'name' => 'company_person',
|
|
));
|
|
|
|
$metadata->mapField(array (
|
|
'id' => true,
|
|
'fieldName' => 'id',
|
|
'type' => 'integer',
|
|
));
|
|
|
|
$metadata->mapField(array (
|
|
'fieldName' => 'zip',
|
|
'length' => 50,
|
|
));
|
|
|
|
$metadata->mapField(array (
|
|
'fieldName' => 'city',
|
|
'length' => 50,
|
|
));
|
|
|
|
$metadata->mapOneToOne(array(
|
|
'fieldName' => 'user',
|
|
'targetEntity' => 'CmsUser',
|
|
'joinColumns' => array(array('referencedColumnName' => 'id'))
|
|
));
|
|
|
|
$metadata->addNamedNativeQuery(array (
|
|
'name' => 'find-all',
|
|
'query' => 'SELECT id, country, city FROM cms_addresses',
|
|
'resultSetMapping' => 'mapping-find-all',
|
|
));
|
|
|
|
$metadata->addNamedNativeQuery(array (
|
|
'name' => 'find-by-id',
|
|
'query' => 'SELECT * FROM cms_addresses WHERE id = ?',
|
|
'resultClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsAddress',
|
|
));
|
|
|
|
$metadata->addNamedNativeQuery(array (
|
|
'name' => 'count',
|
|
'query' => 'SELECT COUNT(*) AS count FROM cms_addresses',
|
|
'resultSetMapping' => 'mapping-count',
|
|
));
|
|
|
|
$metadata->addSqlResultSetMapping(array (
|
|
'name' => 'mapping-find-all',
|
|
'columns' => array(),
|
|
'entities' => array ( array (
|
|
'fields' => array (
|
|
array (
|
|
'name' => 'id',
|
|
'column' => 'id',
|
|
),
|
|
array (
|
|
'name' => 'city',
|
|
'column' => 'city',
|
|
),
|
|
array (
|
|
'name' => 'country',
|
|
'column' => 'country',
|
|
),
|
|
),
|
|
'entityClass' => 'Doctrine\Tests\Models\CMS\CmsAddress',
|
|
),
|
|
),
|
|
));
|
|
|
|
$metadata->addSqlResultSetMapping(array (
|
|
'name' => 'mapping-without-fields',
|
|
'columns' => array(),
|
|
'entities' => array(array (
|
|
'entityClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsAddress',
|
|
'fields' => array()
|
|
)
|
|
)
|
|
));
|
|
|
|
$metadata->addSqlResultSetMapping(array (
|
|
'name' => 'mapping-count',
|
|
'columns' =>array (
|
|
array (
|
|
'name' => 'count',
|
|
),
|
|
)
|
|
));
|
|
|
|
$metadata->addEntityListener(\Doctrine\ORM\Events::postPersist, 'CmsAddressListener', 'postPersist');
|
|
$metadata->addEntityListener(\Doctrine\ORM\Events::prePersist, 'CmsAddressListener', 'prePersist');
|
|
|
|
$metadata->addEntityListener(\Doctrine\ORM\Events::postUpdate, 'CmsAddressListener', 'postUpdate');
|
|
$metadata->addEntityListener(\Doctrine\ORM\Events::preUpdate, 'CmsAddressListener', 'preUpdate');
|
|
|
|
$metadata->addEntityListener(\Doctrine\ORM\Events::postRemove, 'CmsAddressListener', 'postRemove');
|
|
$metadata->addEntityListener(\Doctrine\ORM\Events::preRemove, 'CmsAddressListener', 'preRemove');
|
|
|
|
$metadata->addEntityListener(\Doctrine\ORM\Events::preFlush, 'CmsAddressListener', 'preFlush');
|
|
$metadata->addEntityListener(\Doctrine\ORM\Events::postLoad, 'CmsAddressListener', 'postLoad');
|
|
}
|
|
} |