Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Mapping / xml / Doctrine.Tests.ORM.Mapping.User.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\ORM\Mapping\User" table="cms_users">
9         <options>
10             <option name="foo">bar</option>
11             <option name="baz">
12                 <option name="key">val</option>
13             </option>
14         </options>
15
16         <indexes>
17             <index name="name_idx" columns="name"/>
18             <index columns="user_email"/>
19         </indexes>
20
21         <unique-constraints>
22             <unique-constraint columns="name,user_email" name="search_idx" />
23         </unique-constraints>
24
25         <lifecycle-callbacks>
26             <lifecycle-callback type="prePersist" method="doStuffOnPrePersist"/>
27             <lifecycle-callback type="prePersist" method="doOtherStuffOnPrePersistToo"/>
28             <lifecycle-callback type="postPersist" method="doStuffOnPostPersist"/>
29         </lifecycle-callbacks>
30
31         <named-queries>
32             <named-query name="all" query="SELECT u FROM __CLASS__ u"/>
33         </named-queries>
34
35         <id name="id" type="integer" column="id">
36             <generator strategy="AUTO"/>
37             <sequence-generator sequence-name="tablename_seq" allocation-size="100" initial-value="1" />
38         </id>
39         
40         <field name="name" column="name" type="string" length="50" nullable="true" unique="true">
41             <options>
42                 <option name="foo">bar</option>
43                 <option name="baz">
44                     <option name="key">val</option>
45                 </option>
46             </options>
47         </field>
48         <field name="email" column="user_email" type="string" column-definition="CHAR(32) NOT NULL" />
49         
50         <one-to-one field="address" target-entity="Address" inversed-by="user">
51             <cascade><cascade-remove /></cascade>
52             <join-column name="address_id" referenced-column-name="id" on-delete="CASCADE" on-update="CASCADE"/>
53         </one-to-one>
54         
55         <one-to-many field="phonenumbers" target-entity="Phonenumber" mapped-by="user" index-by="number" orphan-removal="true">
56             <cascade>
57                 <cascade-persist/>
58             </cascade>
59             <order-by>
60                 <order-by-field name="number" direction="ASC" />
61             </order-by>
62         </one-to-many>
63         
64         <many-to-many field="groups" target-entity="Group">
65             <cascade>
66                 <cascade-all/>
67             </cascade>
68             <join-table name="cms_users_groups">
69                 <join-columns>
70                     <join-column name="user_id" referenced-column-name="id" nullable="false" unique="false" />
71                 </join-columns>
72                 <inverse-join-columns>
73                     <join-column name="group_id" referenced-column-name="id" column-definition="INT NULL" />
74                 </inverse-join-columns>
75             </join-table>
76         </many-to-many>
77         
78     </entity>
79
80 </doctrine-mapping>