自引用表与交叉引用表上的关联映射



我有点困惑,如何在symfony中添加关联映射,为我的问题。

我有两个实体:用户和朋友。

用户表有一个 id 作为主键(自动(。 友元表有一个 id(auto,主键(、userId 和 friendId 作为列。 friendId 也是 User 表中的用户。

朋友表:

ID  userId    friendsId
---------------------
1    564          123
2    564          345
3    777          456

User Table:
ID  Name
---------------------
123  Alfons
345  Paul
456  Guiseppe
564  Mary
777  Belinda

现在我想映射两个表,我可以在我的用户对象中调用一个函数,例如getFriends(): User.此函数应返回引用存储我的用户 id 的 friends 表的 Users对象。

正确的方法应该是一对多关联,单向与连接表?

提前谢谢你;-(

以下是实体字段

的外观在用户实体类中

/**
* @var int
* @ORMColumn(name="ID", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
* @ORMColumn(name="Name", type="string", length=100, nullable=true)
*/
private $name;        

/**
* @var Collection
* @ORMOneToMany(targetEntity="Friend", mappedBy="friendUser")
* @ORMJoinTable(name="User")
*/
private $friends;

在友元实体类中

/**
* @var int
* @ORMColumn(name="ID", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* This is the user
*
* @ORMManyToOne(targetEntity="User", inversedBy="ID")
* @ORMJoinColumn(name="userId", referencedColumnName="ID")
*/
private $user;
/**
* This is the friends' user entity
*
* @ORMManyToOne(targetEntity="User", inversedBy="ID")
* @ORMJoinColumn(name="friendsId", referencedColumnName="ID")
*/
private $friendUser;

最新更新