我有两个关联OneToMany,Project
和Services
的实体。现在我想通过project_id删除所有的服务。使用查询生成器删除原则2
第一次尝试:
$qb = $em->createQueryBuilder();
$qb->delete('Services','s');
$qb->andWhere($qb->expr()->eq('s.project_id', ':id'));
$qb->setParameter(':id',$project->getId());
这种尝试失败与异常Entity Service does not have property project_id
。这是真的,该属性不存在,它只在数据库表中作为外键。
第二次尝试:
$qb = $em->createQueryBuilder();
$qb->delete('Services','s')->innerJoin('s.project','p');
$qb->andWhere($qb->expr()->eq('p.id', ':id'));
$qb->setParameter(':id',$project->getId());
这一个generetate非有效DQL查询过。
任何想法和例子都会受到欢迎。
第三行可以改写如下:$ qb-> where('s.project =:project'); – Oli 2014-12-11 15:26:56