我的实体(产品)与另一个实体(公司)具有单向多关系deletedByCompanies。假设相关实体不存在选择实体
我希望选择所有未被特定公司删除的产品。这就是所有没有通过那么多关系连接起来的产品。
尝试:
$this->em->getRepository(Product::class)->createQueryBuilder('t')
->leftJoin('t.deletedByCompanies', 'deletedCompany')
->andWhere('deletedCompany.id not in (:companyId)')
->setParameter('companyId', [$companyId]);
但这根本不返回任何东西。 架构是相当straghtforward:
Product:
id: int PK
Company:
id: int PK
DeletedProducts
product_id: int FK
company_id: int FK
实体定义产品类:
/**
* @var Company[]
* @ORM\ManyToMany(targetEntity="Company", indexBy="id")
* @ORM\JoinTable(name="DeletedProducts")
*/
protected $deletedByCompanies;
*“我希望选择所有未被特定公司删除的产品。”*。您的意思是只有那些未被该公司删除的**删除**产品?或者所有的产品,包括那些根本没有被删除的产品? – axiac 2015-02-12 16:18:50
显示表格结构(表格名称和ID字段名称)。 – axiac 2015-02-12 16:19:47
只有公司的NOT DELETED产品。 – 2015-02-12 17:11:23