Inspired from http://blog.hio.fr/2011/09/17/doctrine2-yaml-mapping-example.html
oneToOne, oneToMany, manyToMany, etc. examples
Inspired from http://blog.hio.fr/2011/09/17/doctrine2-yaml-mapping-example.html
oneToOne, oneToMany, manyToMany, etc. examples
| MyEntity: | |
| type: entity | |
| repositoryClass: MyRepositoryClass | |
| table: my_entity | |
| namedQueries: | |
| all: "SELECT u FROM __CLASS__ u" | |
| # Class-Table-Inheritance | |
| inheritanceType: joined | |
| discriminatorColumn: | |
| name: type | |
| type: string | |
| discriminatorMap: | |
| class1: MyClass1 | |
| class2: MyClass2 | |
| id: | |
| id: | |
| type: integer | |
| generator: | |
| strategy: AUTO | |
| sequenceGenerator: | |
| sequenceName: tablename_seq | |
| allocationSize: 100 | |
| initialValue: 1 | |
| fields: | |
| name: | |
| type: string | |
| length: 50 | |
| nullable: true | |
| unique: true | |
| email: | |
| type: string | |
| column: user_email | |
| columnDefinition: CHAR(32) NOT NULL | |
| oneToOne: | |
| address: | |
| targetEntity: Address | |
| inversedBy: user | |
| joinColumn: | |
| name: address_id | |
| referencedColumnName: id | |
| onDelete: CASCADE | |
| onUpdate: CASCADE | |
| cascade: [ remove ] | |
| oneToMany: | |
| phonenumbers: | |
| targetEntity: PhoneNumber | |
| orphanRemoval: true | |
| mappedBy: user | |
| orderBy: | |
| number: ASC | |
| cascade: [ persist ] | |
| fetch: EAGER | |
| # ManyToMany unidirectionnal | |
| manyToMany: | |
| groups: | |
| targetEntity: Group | |
| joinTable: | |
| name: users_groups | |
| joinColumns: | |
| user_id: | |
| referencedColumnName: id | |
| inverseJoinColumns: | |
| group_id: | |
| referencedColumnName: id | |
| # ManyToMany bidirectionnal | |
| manyToMany: | |
| groups: | |
| targetEntity: Group | |
| inversedBy: users | |
| joinTable: | |
| name: users_groups | |
| joinColumns: | |
| user_id: | |
| referencedColumnName: id | |
| nullable: false | |
| unique: false | |
| inverseJoinColumns: | |
| group_id: | |
| referencedColumnName: id | |
| columnDefinition: INT NULL | |
| cascade: | |
| - all | |
| # Inverse side | |
| Group: | |
| type: entity | |
| manyToMany: | |
| users: | |
| targetEntity: User | |
| mappedBy: groups | |
| manyToOne: | |
| securityLevel: | |
| targetEntity: SecurityLevel | |
| inversedBy: users | |
| joinColumn: | |
| name: securitylevel_id | |
| referencedColumnName: id | |
| nullable: false | |
| # Referencing an entity with a multiple columns primary key | |
| manyToOne: | |
| location: | |
| targetEntity: Location | |
| joinColumns: | |
| - name: location_latitude | |
| referencedColumnName: latitude | |
| nullable: false | |
| - name: location_longitude | |
| referencedColumnName: longitude | |
| nullable: false | |
| lifecycleCallbacks: | |
| prePersist: [ doStuffOnPrePersist, doOtherStuffOnPrePersistToo ] | |
| postPersist: [ doStuffOnPostPersist ] | |
| preUpdate: [ preUpdate ] | |
| preRemove: [ preDelete ] | |
| postLoad: [ postLoad ] | |
| uniqueConstraints: | |
| search_idx: | |
| columns: [name, user_email] | |
| indexes: | |
| name_idx: | |
| columns: name | |
| 0: | |
| columns: user_email |