Доктрина 2 - Многократное соединение одной и той же сущности - PullRequest
2 голосов
/ 20 марта 2011

Я новичок в учении.У меня есть две таблицы сообщений и пользователей.Пользовательский объект имеет два соединения: fromMessages и toMessages.Сущность сообщения имеет два соединения: fromUser и toUser.Моя аннотация выглядит следующим образом:

Субъект пользователя:

/**
* @param \Doctrine\Common\Collections\Collection $property
* @OneToMany(targetEntity="Message", mappedBy="fromUser", cascade={"persist", "remove"})
*/
protected $fromMessages;

/**
* @param \Doctrine\Common\Collections\Collection $property
* @OneToMany(targetEntity="Message", mappedBy="toUser", cascade={"persist", "remove"})
*/
protected $toMessages;

Сущность сообщения:

/**
 * @var User
 * @ManyToOne(targetEntity="User", inversedBy="fromMessages")
 * @JoinColumns({
 *  @JoinColumn(name="fromUserId", referencedColumnName="id")
 * })
 */
protected $fromUser;

/**
 * @var User
 * @ManyToOne(targetEntity="User", inversedBy="toMessages")
 * @JoinColumns({
 *  @JoinColumn(name="toUserId", referencedColumnName="id")
 * })
 */
protected $toUser;

Я сохраняю сообщение и после прочтения сообщений с помощью DQL (выберите u FROM App \ Entities \ User u ") из сообщений - это работа, но сообщения всегда возвращают ноль.Как можно решить эту проблему?

Извините, мой плохой английский.Спасибо.

1 Ответ

1 голос
/ 21 марта 2011

Вы устанавливаете значение toMessages на «собственной» стороне отношений?(То есть сторона many @OneToMany? Согласно документам Doctrine 2, сохраняется только сторона-владелец - обратная сторона отбрасывается / игнорируется.

...