3 use Doctrine\ORM\Mapping\ClassMetadataInfo;
5 $metadata->setPrimaryTable(array(
9 $metadata->addNamedNativeQuery(array (
10 'name' => 'fetchIdAndUsernameWithResultClass',
11 'query' => 'SELECT id, username FROM cms_users WHERE username = ?',
12 'resultClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsUser',
15 $metadata->addNamedNativeQuery(array (
16 'name' => 'fetchAllColumns',
17 'query' => 'SELECT * FROM cms_users WHERE username = ?',
18 'resultClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsUser',
21 $metadata->addNamedNativeQuery(array (
22 'name' => 'fetchJoinedAddress',
23 'query' => 'SELECT u.id, u.name, u.status, a.id AS a_id, a.country, a.zip, a.city FROM cms_users u INNER JOIN cms_addresses a ON u.id = a.user_id WHERE u.username = ?',
24 'resultSetMapping' => 'mappingJoinedAddress',
27 $metadata->addNamedNativeQuery(array (
28 'name' => 'fetchJoinedPhonenumber',
29 'query' => 'SELECT id, name, status, phonenumber AS number FROM cms_users INNER JOIN cms_phonenumbers ON id = user_id WHERE username = ?',
30 'resultSetMapping' => 'mappingJoinedPhonenumber',
33 $metadata->addNamedNativeQuery(array (
34 'name' => 'fetchUserPhonenumberCount',
35 'query' => 'SELECT id, name, status, COUNT(phonenumber) AS numphones FROM cms_users INNER JOIN cms_phonenumbers ON id = user_id WHERE username IN (?) GROUP BY id, name, status, username ORDER BY username',
36 'resultSetMapping' => 'mappingUserPhonenumberCount',
39 $metadata->addNamedNativeQuery(array (
40 "name" => "fetchMultipleJoinsEntityResults",
41 "resultSetMapping" => "mappingMultipleJoinsEntityResults",
42 "query" => "SELECT u.id AS u_id, u.name AS u_name, u.status AS u_status, a.id AS a_id, a.zip AS a_zip, a.country AS a_country, COUNT(p.phonenumber) AS numphones FROM cms_users u INNER JOIN cms_addresses a ON u.id = a.user_id INNER JOIN cms_phonenumbers p ON u.id = p.user_id GROUP BY u.id, u.name, u.status, u.username, a.id, a.zip, a.country ORDER BY u.username"
45 $metadata->addSqlResultSetMapping(array (
46 'name' => 'mappingJoinedAddress',
48 'entities' => array(array (
63 'name' => 'address.zip',
67 'name' => 'address.city',
71 'name' => 'address.country',
72 'column' => 'country',
75 'name' => 'address.id',
79 'entityClass' => 'Doctrine\Tests\Models\CMS\CmsUser',
80 'discriminatorColumn' => null
85 $metadata->addSqlResultSetMapping(array (
86 'name' => 'mappingJoinedPhonenumber',
88 'entities' => array(array(
100 'column' => 'status',
103 'name' => 'phonenumbers.phonenumber',
104 'column' => 'number',
107 'entityClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsUser',
108 'discriminatorColumn' => null
113 $metadata->addSqlResultSetMapping(array (
114 'name' => 'mappingUserPhonenumberCount',
115 'columns' => array(),
116 'entities' => array (
129 'column' => 'status',
132 'entityClass' => 'Doctrine\Tests\Models\CMS\CmsUser',
133 'discriminatorColumn' => null
138 'name' => 'numphones',
143 $metadata->addSqlResultSetMapping(array(
144 'name' => 'mappingMultipleJoinsEntityResults',
145 'entities' => array(array(
153 'column' => 'u_name',
157 'column' => 'u_status',
160 'entityClass' => 'Doctrine\Tests\Models\CMS\CmsUser',
161 'discriminatorColumn' => null,
175 'column' => 'a_country',
178 'entityClass' => 'Doctrine\Tests\Models\CMS\CmsAddress',
179 'discriminatorColumn' => null,
182 'columns' => array(array(
183 'name' => 'numphones',