我有2个学说实体,
实体A
有一个字段name
实体B
有一个字段city
实体A
与名为B
的实体bees
有一对多的关联
现在,我尝试选择名称为“test”的所有A
实体,或者与B
实体建立关联,其中包含像'test'这样的城市
我有DQL:
SELECT a FROM A a INNER JOIN a.bees b WHERE a.name LIKE ?1 OR b.city LIKE ?1
当A
具有关联的B
但如果没有关联的B
时,即使A
的名称匹配,结果也为空,这也有效。
我该如何解决这个问题?
答案 0 :(得分:2)
您应该使用左连接
SELECT a FROM A a LEFT JOIN a.bees b WHERE a.name LIKE ?1 OR b.city LIKE ?1
这是一张备忘单:http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig.jpg