Doctrine.Tests.ORM.Mapping.User.dcm.xml 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
  5. http://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
  6. <entity name="Doctrine\Tests\ORM\Mapping\User" table="cms_users">
  7. <indexes>
  8. <index name="name_idx" columns="name"/>
  9. <index columns="user_email"/>
  10. </indexes>
  11. <unique-constraints>
  12. <unique-constraint columns="name,user_email" name="search_idx" />
  13. </unique-constraints>
  14. <lifecycle-callbacks>
  15. <lifecycle-callback type="prePersist" method="doStuffOnPrePersist"/>
  16. <lifecycle-callback type="prePersist" method="doOtherStuffOnPrePersistToo"/>
  17. <lifecycle-callback type="postPersist" method="doStuffOnPostPersist"/>
  18. </lifecycle-callbacks>
  19. <named-queries>
  20. <named-query name="all" query="SELECT u FROM __CLASS__ u"/>
  21. </named-queries>
  22. <id name="id" type="integer" column="id">
  23. <generator strategy="AUTO"/>
  24. <sequence-generator sequence-name="tablename_seq" allocation-size="100" initial-value="1" />
  25. </id>
  26. <field name="name" column="name" type="string" length="50" nullable="true" unique="true" />
  27. <field name="email" column="user_email" type="string" column-definition="CHAR(32) NOT NULL" />
  28. <one-to-one field="address" target-entity="Address" inversed-by="user">
  29. <cascade><cascade-remove /></cascade>
  30. <join-column name="address_id" referenced-column-name="id" on-delete="CASCADE" on-update="CASCADE"/>
  31. </one-to-one>
  32. <one-to-many field="phonenumbers" target-entity="Phonenumber" mapped-by="user" index-by="number" orphan-removal="true">
  33. <cascade>
  34. <cascade-persist/>
  35. </cascade>
  36. <order-by>
  37. <order-by-field name="number" direction="ASC" />
  38. </order-by>
  39. </one-to-many>
  40. <many-to-many field="groups" target-entity="Group">
  41. <cascade>
  42. <cascade-all/>
  43. </cascade>
  44. <join-table name="cms_users_groups">
  45. <join-columns>
  46. <join-column name="user_id" referenced-column-name="id" nullable="false" unique="false" />
  47. </join-columns>
  48. <inverse-join-columns>
  49. <join-column name="group_id" referenced-column-name="id" column-definition="INT NULL" />
  50. </inverse-join-columns>
  51. </join-table>
  52. </many-to-many>
  53. </entity>
  54. </doctrine-mapping>