我在这个例子中两个类 - DeliveryMethod和国家。 他们互相多对一对多的关系。
我想要做的就是选择一个没有任何国家映射到他们所有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'