Doctrine.Tests.ORM.Mapping.User.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. use Doctrine\ORM\Mapping\ClassMetadataInfo;
  3. $metadata->setInheritanceType(ClassMetadataInfo::INHERITANCE_TYPE_NONE);
  4. $metadata->setPrimaryTable(array(
  5. 'name' => 'cms_users',
  6. ));
  7. $metadata->setChangeTrackingPolicy(ClassMetadataInfo::CHANGETRACKING_DEFERRED_IMPLICIT);
  8. $metadata->addLifecycleCallback('doStuffOnPrePersist', 'prePersist');
  9. $metadata->addLifecycleCallback('doOtherStuffOnPrePersistToo', 'prePersist');
  10. $metadata->addLifecycleCallback('doStuffOnPostPersist', 'postPersist');
  11. $metadata->addNamedQuery(array(
  12. 'name' => 'all',
  13. 'query' => 'SELECT u FROM __CLASS__ u'
  14. ));
  15. $metadata->mapField(array(
  16. 'id' => true,
  17. 'fieldName' => 'id',
  18. 'type' => 'integer',
  19. 'columnName' => 'id',
  20. ));
  21. $metadata->mapField(array(
  22. 'fieldName' => 'name',
  23. 'type' => 'string',
  24. 'length' => 50,
  25. 'unique' => true,
  26. 'nullable' => true,
  27. 'columnName' => 'name',
  28. ));
  29. $metadata->mapField(array(
  30. 'fieldName' => 'email',
  31. 'type' => 'string',
  32. 'columnName' => 'user_email',
  33. 'columnDefinition' => 'CHAR(32) NOT NULL',
  34. ));
  35. $metadata->setIdGeneratorType(ClassMetadataInfo::GENERATOR_TYPE_AUTO);
  36. $metadata->mapOneToOne(array(
  37. 'fieldName' => 'address',
  38. 'targetEntity' => 'Doctrine\\Tests\\ORM\\Mapping\\Address',
  39. 'cascade' =>
  40. array(
  41. 0 => 'remove',
  42. ),
  43. 'mappedBy' => NULL,
  44. 'inversedBy' => 'user',
  45. 'joinColumns' =>
  46. array(
  47. 0 =>
  48. array(
  49. 'name' => 'address_id',
  50. 'referencedColumnName' => 'id',
  51. 'onDelete' => 'CASCADE',
  52. ),
  53. ),
  54. 'orphanRemoval' => false,
  55. ));
  56. $metadata->mapOneToMany(array(
  57. 'fieldName' => 'phonenumbers',
  58. 'targetEntity' => 'Doctrine\\Tests\\ORM\\Mapping\\Phonenumber',
  59. 'cascade' =>
  60. array(
  61. 1 => 'persist',
  62. ),
  63. 'mappedBy' => 'user',
  64. 'orphanRemoval' => true,
  65. 'orderBy' =>
  66. array(
  67. 'number' => 'ASC',
  68. ),
  69. ));
  70. $metadata->mapManyToMany(array(
  71. 'fieldName' => 'groups',
  72. 'targetEntity' => 'Doctrine\\Tests\\ORM\\Mapping\\Group',
  73. 'cascade' =>
  74. array(
  75. 0 => 'remove',
  76. 1 => 'persist',
  77. 2 => 'refresh',
  78. 3 => 'merge',
  79. 4 => 'detach',
  80. ),
  81. 'mappedBy' => NULL,
  82. 'joinTable' =>
  83. array(
  84. 'name' => 'cms_users_groups',
  85. 'joinColumns' =>
  86. array(
  87. 0 =>
  88. array(
  89. 'name' => 'user_id',
  90. 'referencedColumnName' => 'id',
  91. 'unique' => false,
  92. 'nullable' => false,
  93. ),
  94. ),
  95. 'inverseJoinColumns' =>
  96. array(
  97. 0 =>
  98. array(
  99. 'name' => 'group_id',
  100. 'referencedColumnName' => 'id',
  101. 'columnDefinition' => 'INT NULL',
  102. ),
  103. ),
  104. ),
  105. 'orderBy' => NULL,
  106. ));
  107. $metadata->table['uniqueConstraints'] = array(
  108. 'search_idx' => array('columns' => array('name', 'user_email')),
  109. );
  110. $metadata->table['indexes'] = array(
  111. 'name_idx' => array('columns' => array('name')), 0 => array('columns' => array('user_email'))
  112. );
  113. $metadata->setSequenceGeneratorDefinition(array(
  114. 'sequenceName' => 'tablename_seq',
  115. 'allocationSize' => 100,
  116. 'initialValue' => 1,
  117. ));