File: Doctrine.Tests.Models.CMS.CmsUser.dcm.xml

package info (click to toggle)
doctrine 2.14.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 10,612 kB
  • sloc: php: 113,660; xml: 4,630; makefile: 28; sh: 14
file content (139 lines) | stat: -rw-r--r-- 6,768 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
                          https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd">

    <entity name="Doctrine\Tests\Models\CMS\CmsUser" table="cms_users">

        <named-queries>
            <named-query name="all" query="SELECT u FROM __CLASS__ u"/>
        </named-queries>

        <named-native-queries>
            <named-native-query name="fetchIdAndUsernameWithResultClass" result-class="CmsUser">
                <query>SELECT id, username FROM cms_users WHERE username = ?</query>
            </named-native-query>

            <named-native-query name="fetchAllColumns" result-class="CmsUser">
                <query>SELECT * FROM cms_users WHERE username = ?</query>
            </named-native-query>

            <named-native-query name="fetchJoinedAddress" result-set-mapping="mappingJoinedAddress">
                <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>
            </named-native-query>

            <named-native-query name="fetchJoinedPhonenumber" result-set-mapping="mappingJoinedPhonenumber">
                <query>SELECT id, name, status, phonenumber AS number FROM cms_users INNER JOIN cms_phonenumbers ON id = user_id WHERE username = ?</query>
            </named-native-query>

            <named-native-query name="fetchUserPhonenumberCount" result-set-mapping="mappingUserPhonenumberCount">
                <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>
            </named-native-query>

            <named-native-query name="fetchMultipleJoinsEntityResults" result-set-mapping="mappingMultipleJoinsEntityResults">
                <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>
            </named-native-query>
        </named-native-queries>

        <sql-result-set-mappings>
            <sql-result-set-mapping name="mappingJoinedAddress">
                <entity-result entity-class="__CLASS__">
                    <field-result name="id"/>
                    <field-result name="name"/>
                    <field-result name="status"/>
                    <field-result name="address.zip"/>
                    <field-result name="address.city"/>
                    <field-result name="address.country"/>
                    <field-result name="address.id" column="a_id"/>
                </entity-result>
            </sql-result-set-mapping>

            <sql-result-set-mapping name="mappingJoinedPhonenumber">
                <entity-result entity-class="CmsUser">
                    <field-result name="id"/>
                    <field-result name="name"/>
                    <field-result name="status"/>
                    <field-result name="phonenumbers.phonenumber" column="number"/>
                </entity-result>
            </sql-result-set-mapping>

            <sql-result-set-mapping name="mappingUserPhonenumberCount">
                <entity-result entity-class="CmsUser">
                    <field-result name="id"/>
                    <field-result name="name"/>
                    <field-result name="status"/>
                </entity-result>
                <column-result name="numphones"/>
            </sql-result-set-mapping>

            <sql-result-set-mapping name="mappingMultipleJoinsEntityResults">
                <entity-result entity-class="__CLASS__">
                    <field-result name="id" column="u_id"/>
                    <field-result name="name" column="u_name"/>
                    <field-result name="status" column="u_status"/>
                </entity-result>
                <entity-result entity-class="CmsAddress">
                    <field-result name="id" column="a_id"/>
                    <field-result name="zip" column="a_zip"/>
                    <field-result name="country" column="a_country"/>
                </entity-result>
                <column-result name="numphones"/>
            </sql-result-set-mapping>
        </sql-result-set-mappings>

        <id name="id" type="integer" column="id">
            <generator strategy="AUTO"/>
        </id>
        
        <field name="status" column="status" type="string" length="50" unique="true"/>
        <field name="username" column="username" type="string" length="255" unique="true"/>
        <field name="name" column="name" type="string" length="255"/>

        <one-to-one field="address" target-entity="CmsAddress" inversed-by="user" orphan-removal="true">
            <cascade>
                <cascade-persist/>
            </cascade>
            <join-column name="address_id" referenced-column-name="id"  />
        </one-to-one>

        <one-to-one field="email" target-entity="CmsEmail" inversed-by="user" orphan-removal="true">
            <cascade>
                <cascade-persist/>
            </cascade>
            <join-column referenced-column-name="id" nullable="true" />
        </one-to-one>

        <one-to-many field="phonenumbers" target-entity="CmsPhonenumber" mapped-by="user" orphan-removal="true">
            <cascade>
                <cascade-persist/>
                <cascade-merge/>
            </cascade>
        </one-to-many>

        <one-to-many field="articles" target-entity="CmsArticle" mapped-by="user">
            <cascade>
                <cascade-detach/>
            </cascade>
        </one-to-many>
        
        <many-to-many field="groups" target-entity="CmsGroup">
            <cascade>
                <cascade-persist/>
                <cascade-merge/>
                <cascade-detach/>
            </cascade>
            <join-table name="cms_users_groups">
                <join-columns>
                    <join-column name="user_id" referenced-column-name="id"/>
                </join-columns>
                <inverse-join-columns>
                    <join-column name="group_id" referenced-column-name="id"/>
                </inverse-join-columns>
            </join-table>
        </many-to-many>

    </entity>

</doctrine-mapping>