gpt4 book ai didi

hibernate - 如何在 grails 中有条件的 2 个表左连接

转载 作者:行者123 更新时间:2023-12-02 14:41:03 25 4
gpt4 key购买 nike

使用 grails 2.1.1,我需要使用左连接构建一个包含 2 个表的查询。如果我在 oracle 中查询它,它正在工作并给我正确的结果。当我使用 grails Controller 时,出现错误。谁能帮我解决这个问题?

以下是我的尝试:

我在 oracle 上工作的查询:

SELECT  MS.* FROM 
SLS_DO_MST MS LEFT OUTER JOIN INV_ISSUE ISS
ON MS.MID = ISS.SLS_DO_MST_MID
where ISS.SLS_DO_MST_MID is null

我在 grails Controller 中使用的 hql 查询:
def items = SlsDoMst.executeQuery('select a from sls.dlo.SlsDoMst a left outer join  inv.InvIssue b on a.id = b.slsDoMst.id where b.slsDoMst.id is null')

我得到的错误:
unexpected token: on near line 1, column 66 [select a from sls.dlo.SlsDoMst a left outer join  inv.InvIssue b on a.id = b.slsDoMst.id where b.slsDoMst.id is null]

我的域名如下::

我的 SlsDoMst 域 >>>
    class SlsDoMst {

...

static mapping = {
...
}

static constraints = {
...
}
}

我的 InvIssue 域 >>>
    class InvIssue{
static mapping = {
table 'INV_ISSUE'
slsDoMst column: 'SLS_DO_MST_MID',ignoreNotFound: true
...
}

...
SlsDoMst slsDoMst

static constraints = {
...
}
}

最佳答案

您不能使用 on对于 HQL 中的左连接。 Hibernate 由 决定将哪一列用于连接子句型号定义 .

您需要定义一个关系(例如 hasMany )和 mapping在 HQL 上加入所使用的模型上。

这是引用:
https://grails.github.io/grails-doc/2.4.3/ref/Database%20Mapping/joinTable.html

关于hibernate - 如何在 grails 中有条件的 2 个表左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34629676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com