在这个例子中我有两个类——DeliveryMethod 和 Country。它们彼此之间具有多对多的关系。
我想要做的是选择没有任何国家映射到它们的所有 DeliveryMethods。
我可以做相反的事情,即选择至少有一个国家的所有交付方式 -
SELECT m FROM DeliveryMethod m JOIN m.countries
但我不知道如何选择国家字段为空的位置。在普通的 SQL 中,我会执行以下操作(deliverymethod_country 是链接表):
SELECT m.* FROM deliverymethods m
LEFT JOIN deliverymethod_country dc ON dc.deliverymethod_id = m.id
WHERE dc.deliverymethod_id IS NULL
但是,任何与此等效的 DQL 都不起作用,例如:
SELECT m FROM DeliveryMethod m LEFT JOIN m.countries WHERE m.countries IS NULL
这给了我这个错误:
[Syntax Error] line 0, col 75: Error: Expected end of string, got 'm'