【发布时间】:2013-12-05 17:01:57
【问题描述】:
我是guided by this,但我不明白出了什么问题。
我的实体:
/**
* @ORM\Entity
* @ORM\Table(name="term")
*/
class Term {
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="Description", mappedBy="term")
**/
private $description;
//....
}
/**
* @ORM\Entity
* @ORM\Table(name="description")
*/
class Description {
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @Orm\ManyToOne(targetEntity="term", inversedBy="description")
* @Orm\JoinColumn(name="term_id", referencedColumnName="id")
**/
private $term;
/**
* @ORM\Column(type="string", length=8)
*/
private $normativity;
//...
}
我需要通过其中一个字段(例如规范性)获取术语并过滤术语描述。
我试过这个:
$query = $this->getDoctrine()->getEntityManager()
->createQuery("
SELECT term, desc FROM myTerminologyBundle:Term term
JOIN term.description desc
WHERE term.word LIKE :r_word' and desc.normativity IN :norm"
)->setParameter('r_word', '%'.$word.'%')->setParameter('norm', array());
我得到以下异常:
[语法错误] 第 0 行,第 30 列:错误:预期的标识变量 |标量表达式 |聚合表达式 |功能声明 | 部分对象表达式 | "(" 子选择 ")" | CaseExpression,得到 '描述'
【问题讨论】:
标签: php sql symfony doctrine-orm