2
我有2個類,我想從數據庫中選擇使用Symfony2學說1查詢。學說選擇多個對象
第一個實體是Calculation
,第二個是Polynomial
。他們有1:1的關係:
/**
* Acme\UserBundle\Entity\Calculation
*
* @ORM\Table(name="Calculation")
* @ORM\Entity(repositoryClass="AppBundle\Entity\CalculationRepository")
*/
class Calculation {
//...
/**
* @ORM\OneToOne(targetEntity="Polynomial")
* @ORM\JoinColumn(name="result_polynomial_id", referencedColumnName="id", nullable=false)
**/
private $resultPolynomial;
//...
}
我有一個查詢,返回我一個用戶的所有計算:
public function findByUser($user) {
return $this->getEntityManager()->createQuery(
'SELECT c
FROM AppBundle:User u
JOIN AppBundle:Polynomial p WITH u = p.user
JOIN AppBundle:Calculation c WITH p = c.resultPolynomial
WHERE u = :user
ORDER BY c.id'
)
->setParameter('user', $user)
->getResult();
}
而到了問題...有沒有辦法讓resultPolynomials一個查詢中的計算?如果我使用類似SELECT c, c.resultPolynomial
我得到錯誤:
[Semantical Error] line 0, col 12 near 'resultPolynomial
': Error: Invalid PathExpression. Must be a StateFieldPathExpression.
如果我用foreach
週期所有的計算,以獲得他們的resultPolynomials有很多查詢到DB(1爲每個計算),這是不利於業績如果我有很多計算。