Grails 连接表

标签 grails join groovy left-join hql

我有两个类。为简单起见,我删除了不相关的数据。我需要将订单加入调查,反之亦然。
我知道我可以跑select * from Order o right join order.survey s where s.id='x'然而,这不是我想做的。我想用左外连接将 Order 加入到调查中,但调查在类中没有 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 

您列出所有调查对象,如果存在关联的订单,您将通过子查询获得

关注:我添加了命名空间术语,您将使用命名空间类进行更改

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

相关文章:

java - 像 OpenXava 这样的 UI 生成?

mongodb - Spring Security Core 和 mongoDB 无法进行身份验证

java - 在 grails 应用程序中包含 jar list 的类路径

perl 加入数组引用

grails - 2 Spring Security中的UserDomainClass

grails - 我想从一个gsp获取表单数据,并想在另一个gsp中访问该数据,并希望将该数据插入表中,我该怎么做?

mysql - 如何分别用他们的名字替换逗号分隔的部门 ID?

php - 从结果表生成体育联赛表

java - 命令行和 groovyConsole 上的 groovy 错误

在 buildSrc 下找不到 gradle 插件依赖项