Доктрина 2 таблицы + дополнительные поля


У меня есть две таблицы и объединенная таблица: "персонал", "классификация" и "staff_classification". В таблице join у меня есть дополнительное логическое поле: "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. Как добавить дополнительное поле "showclassifications"в таблицу join?
  2. Как я могу ссылаться на поле через DQL? Например, какой запрос позволит получить все классификации персонала, которые разрешено показывать?
  3. надо размещать выше аннотации в одном классе и @ManyToMany аннотации без @ joinTable в другом? Например, @ManyToMany (targetEntity= "классификация")?
1 19

1 ответ:

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

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