我有一个实体产品,其中包含两个字段urlTracking和urltrackingDoc,类型分别为Urltracking和实体Urltracking,其中包含产品。 我需要在Product和Urltracking之间建立关系,例如OneToOne ManyToOne。
问题是,当我按id查找urlTracking时,我的产品就装满了,但是当我按id搜索urlTrackingDoc时,我得到的产品为空
/**
*@ORM\Table(name="product")
* @ORM\Entity(repositoryClass="App\ProductBundle\Repository\ProductRepository")
*/
class Product{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue()
* @var int
*/
private $id;
/**
* @var UrlTracking $urlTracking
* @ORM\OneToOne(targetEntity="App\UrlTrackingBundle\Entity\UrlTracking", inversedBy="product")
* @ORM\JoinColumn(name="url_tracking_id", referencedColumnName="id")
*/
private $urlTracking;
/**
* @var UrlTracking $urlTrackingDoc
* @ORM\OneToOne(targetEntity="App\UrlTrackingBundle\Entity\UrlTracking", inversedBy="product")
* @ORM\JoinColumn(name="url_tracking_doc_id", referencedColumnName="id")
*/
private $urlTrackingDoc;
//...
}
/**
*@ORM\Table(name="url_tracking")
* @ORM\Entity(repositoryClass="App\UrlTrackingBundle\Repository\UrlTrackingRepository")
*/
class UrlTracking{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue()
* @var int
*/
private $id;
/**
* @var Product
* @ORM\OneToOne(targetEntity="App\ProductBundle\Entity\Product", mappedBy="urlTracking")
* @ORM\OneToOne(targetEntity="App\ProductBundle\Entity\Product", mappedBy="urlTrackingDoc")
*/
private $product;
//...
}
答案 0 :(得分:3)
您必须在UrlTracking实体中拥有2个产品属性,例如$product
和$productDoc
,每个属性都有其自己的理论映射。