我有两节课。为简单起见,我删除了不相关的数据。我需要加入Order to Survey,而不是相反。
我知道我可以跑步select * from Order o right join order.survey s where s.id='x'但是,这不是我想要的。我想通过左外部联接将Order to Survey加入其中,但是该调查在类中没有Order类的实例。订单包含调查类的实例,这就是为什么从订单类连接表更容易的原因。我在Grails中使用SQL做到了这一点,但是我想知道如何使用hql做到这一点。
sql代码如下。

Select survey.*,ao.* from survey sr left outer join order ao on ao.survey_id=sr.id

型号如下
class Order{
 Survey survey
}

class   Survey {
}

最佳答案

试试这个:

SELECT sr, (SELECT ao FROM namespace.Order ao WHERE ao.survey = sr.id)
FROM namespace.Survey sr

您列出所有Survey对象,如果存在关联的Order,则可以通过子查询获得

注意:我添加了 namespace 术语,您将使用您的 namespace 类进行更改

关于grails - 网格连接表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44773473/

10-11 02:29