0
您好,我對自定義查詢有點麻煩。 我想要做的就是這個查詢:在CustomRepository中執行JOIN「沒有關聯」
SELECT dp.* FROM `document_piece` dp
LEFT JOIN document_category dc
ON dc.id = dp.category_id
ORDER BY dc.name ;
我試過至今都在DQL了一些嘗試,但因爲他們沒有工作,我嘗試使用QueryBuilder的。我到目前爲止是這樣的:
$q = $this->_em->createQueryBuilder()->select('p', 'c')
->from('Core\Entity\DocumentPiece', 'p')
->leftJoin('p.category_id', 'c')
->orderBy('c.name', 'ASC');
而且我得到這個錯誤[Semantical Error] line 0, col 69 near 'c ORDER BY c.name': Error: Class Core\Entity\DocumentPiece has no association named category_id
這裏的(相關)註釋的文件:
核心\實體\ DocumentPiece
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $id;
/**
* @var \Core\Entity\DocumentCategory
*
* @ORM\ID
* @ORM\GeneratedValue(strategy="NONE")
* @ORM\OneToOne(targetEntity="Core\Entity\DocumentCategory")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
* })
*/
private $category;
Core \ Entity \ DocumentCategory
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
我希望你能幫我解決這個問題,如果我要麼搞砸了註解或者DQL。