2
は、私が2つのエンティティを持っています。それから私はManyToMany関係を持っています。多対多関係、orphanRemoval
しかし私の場合、リファレンスはLocusでリンクされていないと何も表示されません。私はBDDに保持したくありません。試してみるの
一覧:リファレンスによって所有
- 関係:(所有側)ReferenceEntityで
- orphanRemoval:軌跡を削除(InversedSide上)LocusEntityで
- orphanRemoval :何もしない
- Locusが所有する関係:
- (InversedSide上)ReferenceEntityでorphanRemoval:LocusEntityで何
- orphanRemoval(所有側)を実行します。他の軌跡
Reference.php
で使用されるが、リファレンスを削除/**
* Reference
*
* @ORM\Table(name="reference")
* @ORM\Entity(repositoryClass="AppBundle\Repository\ReferenceRepository")
*/
class Reference
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Locus", inversedBy="references")
*/
private $locus;
public function addLocus(Locus $locus)
{
if (!$this->locus->contains($locus)) {
$this->locus->add($locus);
$locus->addReference($this);
}
return $this;
}
public function removeLocus(Locus $locus)
{
if ($this->locus->contains($locus)) {
$this->locus->removeElement($locus);
}
return $this;
}
public function getLocus()
{
return $this->locus;
}
Locus.php
/**
* @ORM\Entity(repositoryClass="AppBundle\Repository\LocusRepository")
*/
class Locus extends GeneticEntry
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Reference", mappedBy="locus", orphanRemoval=true)
*/
private $references;
public function addReference(Reference $reference)
{
$this->references->add($reference);
return $this;
}
public function removeReference(Reference $reference)
{
if ($this->references->contains($reference)) {
$this->references->removeElement($reference);
}
return $this;
}
public function getReferences()
{
return $this->references;
}
あなたは作ってみることができますイベントonLocusDeletedので、関連する参照に関連性のないものが含まれているかどうかをチェックします。存在している場合はそれを削除します –
はい、それはそうだと思いますが、なぜか分かりませんが、それを行うためにネイティブのドクトリンの方法を試して試してみる時間です。 – mpiot