我有两个DB与OneToMany关系的表。在'EntityRepository'中使用'createQueryBuilder()'方法,我尝试选择一些具有条件的对象。有我的方法:Symfony 2 OneToMany的关系 - 关联错误的结果
$query = $this->getEntityManager()->createQueryBuilder();
$query->select("parent")
->from('TestAppBundle:Parent', 'parent')
->leftJoin("parent.children", 'child', 'WITH', 'child.IdP = parent.id')
->where('child.date < :date')
->andWhere('child.status = :null')
->setParameter('date', new DateTime())
->setParameter('null', 0);
它的工作几乎不错。我在ArrayCollections中获取具有子对象的父对象。方法选择具有条件的父对象,但问题是我也得到不保留条件的子对象。 我想只得到保持条件的子对象和也保持条件的子对象。此时必须在查询后过滤结果并手动删除儿童对象。 我希望你能理解这个问题:)
被选中的孩子不符合的条件是什么? – Jeroen 2014-12-09 13:29:42
孩子有字段名称“状态”。该字段可以是真或假。我只想选择这个孩子的状态为false的父母。它工作正常,从8000行我得到100个父对象,但是当我想看到孩子,我得到状态为真的孩子和状态为假的孩子。查询后必须删除状态为真的子对象。 – semafor 2014-12-09 13:45:29