我使用的是Doctrine 2.我有一个关联实体,指向两个实体。两者都是复合键的一部分。
我的问题是JoinColumn只允许指定物理名称,而不是逻辑名称。我需要两者不同。其他所有东西都可以映射,所以我觉得我错过了什么。
/**
* @ORM\Entity()
* @ORM\Table(name="user_friend")
*/
class UserFriend
{
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="User", inversedBy="friends")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
**/
private $user;
/**
* @ORM\Id
* @ORM\ManyToOne[...]
**/
private $friend;
private $connectedDate;
}
顺便说一下,我尝试将关系与id列(user,userId)分开,但这会导致级联持久存在问题。
任何解决方案或可能不同的路线都将受到赞赏。