Doctrine orm 在父集合中获取重复的子对象

Doctrine orm 在父集合中获取重复的子对象,doctrine-orm,many-to-many,duplicates,Doctrine Orm,Many To Many,Duplicates,我的条令2上有这样的设计: 光盘 身份证,姓名 歌词 身份证、姓名、艺术家 列表(多对多的联接表) 唱片,歌词 因此,当我调用$disc->GetLyms()时,它返回光盘上的当前歌词,但不允许重复使用同一歌词。我该怎么处理呢 编辑: 在“列表表”中,我可以看到歌词为同一张光盘存储了多次 这些是我的实体 圆盘 /** *@实体 *@Table(name=“disc”) */ 类光盘 { /** *@Id@Column(type=“integer”,nullable=false,name=“Id\

我的条令2上有这样的设计:

光盘

身份证,姓名

歌词

身份证、姓名、艺术家

列表(多对多的联接表)

唱片,歌词

因此,当我调用$disc->GetLyms()时,它返回光盘上的当前歌词,但不允许重复使用同一歌词。我该怎么处理呢

编辑:

在“列表表”中,我可以看到歌词为同一张光盘存储了多次

这些是我的实体

圆盘

/**
*@实体
*@Table(name=“disc”)
*/
类光盘
{
/**
*@Id@Column(type=“integer”,nullable=false,name=“Id\u disc”)
*@GeneratedValue(strategy=“AUTO”)
*/
受保护的$id;
/**
*@Column(type=“string”,nullable=false,name=“name”)
*/
受保护的$名称;
/**
*@ManyToMany(targetEntity=“抒情”)
*@JoinTable(name=“playlist”,
*joinColumns={@JoinColumn(name=“disc”,referencedColumnName=“id\u disc”)},
*inverseJoinColumns={@JoinColumn(name=“lyric”,referencedColumnName=“id\u lyric”)}
*      )
*/ 
受保护的歌词;
公共函数构造(){
$this->lyris=newarraycollection();
}
抒情的

/**
*@实体
*@Table(name=“lyric”)
*/
阶级抒情诗
{
/**
*@Id@Column(type=“integer”,nullable=false,name=“Id\u lyric”)
*@GeneratedValue(strategy=“AUTO”)
*/
受保护的$id;
/**
*@Column(type=“string”,nullable=false,name=“name”)
*/
受保护的$名称;
/**
*@Column(type=“string”,nullable=false,name=“artist”)
*/
受保护的艺术家;
播放列表(联合表多对多),这是表结构:

id_playlist | disc | lyric  
1           | 1    | 1  
2           | 1    | 1  
3           | 1    | 1   

光盘1有三次歌词1。

我想你说的是条令1,你能粘贴你的模式吗。yml?看看变化。我使用条令2