2016-09-06 69 views
0

我有一個運行在symfony2上的網站。空的左連接只在生產中

我有這樣的DQL查詢:

SELECT b, d, al, a 
FROM Bundle:Book b 
LEFT JOIN b.document d 
LEFT JOIN b.authorLinks al 
LEFT JOIN al.author a  
WHERE d.type = 'summary' 
ORDER BY b.name ASC 

本地,我沒有任何問題,但在生產中我有這樣的問題:

... LEFT JOIN LEFT JOIN ... 

所以第一個LEFT JOIN(b.document d )在生產中不工作,但在當地很好...(其他LEFT JOIN(作者鏈接&作者)都可以)

我的Book實體有:

/** 
* @var \Doctrine\Common\Collections\ArrayCollection 
* 
* @ORM\OneToMany(targetEntity="Document", mappedBy="book") 
* @ORM\OrderBy({"name" = "ASC"}) 
*/ 
protected $document; 

Document實體有:

/** 
* @var Book 
* 
* @ORM\ManyToOne(targetEntity="Book", inversedBy="document") 
* @ORM\JoinColumn(name="book_id", referencedColumnName="id", nullable=true) 
* @Assert\NotBlank 
*/ 
protected $book; 

任何想法?謝謝

+1

您是否清除了生產緩存?什麼是你的緩存引擎?基本上實體關係可能會被緩存,所以你需要清除它。取決於你的緩存引擎的東西像重新啓動Apache會幫助 –

+0

是的,我沒有緩存:清除--env = prod – user2799086

+0

據我所知,我不需要關於子句,因爲關係已配置 – user2799086

回答

0

解決!

我補充說: 「與d.book_id = b.id」 後, 「LEFT JOIN b.document d」

並補充

/** 
* @var book_id 
* @ORM\Column(name="book_id", type="integer") 
* @Assert\NotBlank 
*/ 
protected $book_id; 

在文檔實體

THX的一切!