Doctrine 2 объединяет таблицу + дополнительные поля - PullRequest
19 голосов
/ 14 декабря 2010

У меня есть две таблицы и таблица соединений: «штат», «классификация» и «штатная классификация». В таблице соединений у меня есть дополнительное логическое поле: «showclassification». Моя аннотация выглядит следующим образом:

 /**
 * @ManyToMany(targetEntity="Staff", inversedBy="classifications")
 * @JoinTable(name="staff_classifications",
 *  joinColumns={@JoinColumn(name="staffid", referencedColumnName="id")},
 *  inverseJoinColumns={@JoinColumn(name="classificationid", referencedColumnName="id", unique=true)});
 */
  1. Как добавить дополнительное поле 'showclassification' в таблицу соединений?
  2. Как мне ссылаться на поле через DQL? Например. Какой запрос получит все классификации сотрудников, которые разрешено показывать?
  3. Поместить ли я вышеупомянутую аннотацию в один класс и аннотацию @ManyToMany без @joinTable в другом? Например. @ManyToMany (targetEntity = "Classification")?

1 Ответ

32 голосов
/ 14 декабря 2010

Требуется объект, описывающий отношения (StaffClassification), который имеет отношения OneToMany как с персоналом, так и с классификациями.

ManyToMany не позволяет использовать какие-либо «дополнительные» свойства, поскольку таблица соединения не является сущностью и, следовательно, не может иметь никаких свойств.

...