Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Mapping / xml / Doctrine.Tests.Models.CMS.CmsUser.dcm.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
4       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5       xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
6                           http://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
7                               
8     <entity name="Doctrine\Tests\Models\CMS\CmsUser" table="cms_users">
9
10         <named-queries>
11             <named-query name="all" query="SELECT u FROM __CLASS__ u"/>
12         </named-queries>
13
14         <named-native-queries>
15             <named-native-query name="fetchIdAndUsernameWithResultClass" result-class="CmsUser">
16                 <query>SELECT id, username FROM cms_users WHERE username = ?</query>
17             </named-native-query>
18             
19             <named-native-query name="fetchAllColumns" result-class="CmsUser">
20                 <query>SELECT * FROM cms_users WHERE username = ?</query>
21             </named-native-query>
22
23             <named-native-query name="fetchJoinedAddress" result-set-mapping="mappingJoinedAddress">
24                 <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 = ?</query>
25             </named-native-query>
26
27             <named-native-query name="fetchJoinedPhonenumber" result-set-mapping="mappingJoinedPhonenumber">
28                 <query>SELECT id, name, status, phonenumber AS number FROM cms_users INNER JOIN cms_phonenumbers ON id = user_id WHERE username = ?</query>
29             </named-native-query>
30
31             <named-native-query name="fetchUserPhonenumberCount" result-set-mapping="mappingUserPhonenumberCount">
32                 <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</query>
33             </named-native-query>
34
35             <named-native-query name="fetchMultipleJoinsEntityResults" result-set-mapping="mappingMultipleJoinsEntityResults">
36                 <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</query>
37             </named-native-query>
38         </named-native-queries>
39
40         <sql-result-set-mappings>
41             <sql-result-set-mapping name="mappingJoinedAddress">
42                 <entity-result entity-class="__CLASS__">
43                     <field-result name="id"/>
44                     <field-result name="name"/>
45                     <field-result name="status"/>
46                     <field-result name="address.zip"/>
47                     <field-result name="address.city"/>
48                     <field-result name="address.country"/>
49                     <field-result name="address.id" column="a_id"/>
50                 </entity-result>
51             </sql-result-set-mapping>
52
53             <sql-result-set-mapping name="mappingJoinedPhonenumber">
54                 <entity-result entity-class="CmsUser">
55                     <field-result name="id"/>
56                     <field-result name="name"/>
57                     <field-result name="status"/>
58                     <field-result name="phonenumbers.phonenumber" column="number"/>
59                 </entity-result>
60             </sql-result-set-mapping>
61
62             <sql-result-set-mapping name="mappingUserPhonenumberCount">
63                 <entity-result entity-class="CmsUser">
64                     <field-result name="id"/>
65                     <field-result name="name"/>
66                     <field-result name="status"/>
67                 </entity-result>
68                 <column-result name="numphones"/>
69             </sql-result-set-mapping>
70
71             <sql-result-set-mapping name="mappingMultipleJoinsEntityResults">
72                 <entity-result entity-class="__CLASS__">
73                     <field-result name="id" column="u_id"/>
74                     <field-result name="name" column="u_name"/>
75                     <field-result name="status" column="u_status"/>
76                 </entity-result>
77                 <entity-result entity-class="CmsAddress">
78                     <field-result name="id" column="a_id"/>
79                     <field-result name="zip" column="a_zip"/>
80                     <field-result name="country" column="a_country"/>
81                 </entity-result>
82                 <column-result name="numphones"/>
83             </sql-result-set-mapping>
84         </sql-result-set-mappings>
85
86         <id name="id" type="integer" column="id">
87             <generator strategy="AUTO"/>
88         </id>
89         
90         <field name="status" column="status" type="string" length="50" unique="true"/>
91         <field name="username" column="username" type="string" length="255" unique="true"/>
92         <field name="name" column="name" type="string" length="255"/>
93         
94         <one-to-many field="phonenumbers" target-entity="CmsPhonenumber" mapped-by="user" orphan-removal="true">
95             <cascade>
96                 <cascade-persist/>
97                 <cascade-merge/>
98             </cascade>
99         </one-to-many>
100
101         <one-to-many field="articles" target-entity="CmsArticle" mapped-by="user">
102             <cascade>
103                 <cascade-detach/>
104             </cascade>
105         </one-to-many>
106         
107         <one-to-one field="address" target-entity="CmsAddress" inversed-by="user" orphan-removal="true">
108             <cascade>
109                 <cascade-persist/>
110             </cascade>
111             <join-column name="address_id" referenced-column-name="id"  />
112         </one-to-one>
113
114         <one-to-one field="email" target-entity="CmsEmail" inversed-by="user" orphan-removal="true">
115             <cascade>
116                 <cascade-persist/>
117             </cascade>
118             <join-column referenced-column-name="id" nullable="true" />
119         </one-to-one>
120         
121         <many-to-many field="groups" target-entity="CmsGroup">
122             <cascade>
123                 <cascade-persist/>
124                 <cascade-detach/>
125                 <cascade-merge/>
126             </cascade>
127             <join-table name="cms_users_groups">
128                 <join-columns>
129                     <join-column name="user_id" referenced-column-name="id"/>
130                 </join-columns>
131                 <inverse-join-columns>
132                     <join-column name="group_id" referenced-column-name="id"/>
133                 </inverse-join-columns>
134             </join-table>
135         </many-to-many>
136         
137     </entity>
138
139 </doctrine-mapping>