我有这个实体命名为Pointscomptage.php
:
class Pointscomptage
{
/**
* @var integer
*
* @ORM'Column(name="id", type="integer", nullable=false)
* @ORM'Id
* @ORM'GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM'Column(name="invariant", type="string", length=150, nullable=false)
*/
private $invariant;
/**
* @var string
*
* @ORM'Column(name="nom", type="string", length=150, nullable=false)
*/
private $nom;
/**
* @var string
*
* @ORM'Column(name="consoProduction", type="string", length=150, nullable=false)
*/
private $consoProduction;
/**
* @var Typesenergie
*
* @ORM'ManyToOne(targetEntity="Typesenergie", inversedBy="pointscomptage")
* @ORM'JoinColumn(name="typesenergie_id", referencedColumnName="id")
*/
private $typesenergie;
/** ... getters and setters */
我需要了解如何在此实体上创建 manymany 递归或自反关系。
也就是说,一个Pointscomptage可以没有(0)或有多个(n) Pointscomptage。
如何在同一个实体上建立这个关系?
编辑
感谢Jovan Perovic的回答和建议,这是我找到的解决方案,我们需要尊重学说注释:
/**
* @ORM'ManyToMany(targetEntity="Pointscomptage")
* @ORM'JoinTable(name="pointscomptage_link_table",
* joinColumns={
* @ORM'JoinColumn(name="pointscomptage_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM'JoinColumn(name="id_pointscomptage2", referencedColumnName="id")
* }
* )
**/
private $pointscomptages;
非常感谢。
对于任何实体都可以这样做。查看官方文档@ manymany
例如:/**
* @ManyToMany(targetEntity="Pointscomptage")
* @JoinTable(name="pointscomptage_link_table",
* joinColumns={@JoinColumn(name="id_pointscomptage1", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="id_pointscomptage2", referencedColumnName="id")}
* )
**/
private $pointscomptages;
这个例子假设如下:
- 关系是单向的。双向也很容易实现,在上面的文档链接中也有描述。
- 连接表命名为
pointscomptage_link_table
- 连接表
pointscomptage_link_table
包含两个列键:- id_pointscomptage1
- id_pointscomptage2