我的用户实体中有多对多自引用关系。
// Acme\DemoBundle\Resources\config\doctrine\User.orm.yml
Acme\DemoBundle\Entity\User:
type: entity
repositoryClass: Acme\DemoBundle\Entity\Repository\UserRepository
table: users
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
username:
type: string
length: 25
unique: true
manyToMany:
friendsWithMe:
targetEntity: User
mappedBy: myFriends
myFriends:
targetEntity: User
inversedBy: friendsWithMe
joinTable:
name: friends
joinColumns:
user_id:
referencedColumnName: id
inverseJoinColumns:
friend_user_id:
referencedColumnName: id
现在我想获得三个不同的用户集合:
- MyFriends - myFriend == true 和friendWithMe == false 的实体集合
- FriendWithMe - myFriend == false 和friendWithMe == true 的用户集合
- MutualFriends - myFriend == true 和friendWithMe == true 的用户集合
如果朋友是相互的,Standart getMyFriends 和 getFriendsWithMe(在用户实体中生成)返回所有MyFriends和FriendWithMe记录 =(
我试图深入研究标准的一面,但它不适用于多对多关系。