140 lines
6.7 KiB
XML
140 lines
6.7 KiB
XML
<?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
|
|
http://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-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>
|
|
|
|
<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>
|
|
|
|
<many-to-many field="groups" target-entity="CmsGroup">
|
|
<cascade>
|
|
<cascade-persist/>
|
|
<cascade-detach/>
|
|
<cascade-merge/>
|
|
</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>
|