学说2 - 相同实体多重连接

时间:2011-03-20 13:18:18

标签: php join doctrine-orm

我是学说的新手。我有两个表消息和用户。用户实体有两个连接,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读取消息后(“select u FROM App \ Entities \ User u”)fromMessages正在工作,但toMessages总是返回null。如何解决这个问题?

抱歉我的英语不好。感谢。

1 个答案:

答案 0 :(得分:1)

您是否在关系的'拥有'一侧设置了toMessages的值? (也就是说,@ OneToMany的很多方面?根据Doctrine 2文档,只保留拥有方 - 反面被丢弃/忽略。