Hibernate 如何在grails中使用条件左连接2个表

Hibernate 如何在grails中使用条件左连接2个表,hibernate,grails,gorm,grails-2.0,hibernate-criteria,Hibernate,Grails,Gorm,Grails 2.0,Hibernate Criteria,使用Grails2.1.1,我需要使用左连接构建一个包含两个表的查询。如果我在oracle中查询它,它会工作并给出正确的结果。当我使用grails控制器时,我得到一个错误。有人能帮我吗 以下是我的尝试: 在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

使用Grails2.1.1,我需要使用左连接构建一个包含两个表的查询。如果我在oracle中查询它,它会工作并给出正确的结果。当我使用grails控制器时,我得到一个错误。有人能帮我吗

以下是我的尝试:

在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控制器中使用的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 = {
        ...
    }
}
    class InvIssue{
    static mapping = {
        table 'INV_ISSUE'
        slsDoMst column: 'SLS_DO_MST_MID',ignoreNotFound: true
        ...
    }

    ...
    SlsDoMst slsDoMst

    static constraints = {
    ...
    }
}
我的InvIssue域>>>

    class SlsDoMst {

    ...

    static mapping = {
        ...
    }

    static constraints = {
        ...
    }
}
    class InvIssue{
    static mapping = {
        table 'INV_ISSUE'
        slsDoMst column: 'SLS_DO_MST_MID',ignoreNotFound: true
        ...
    }

    ...
    SlsDoMst slsDoMst

    static constraints = {
    ...
    }
}

在HQL中,不能对左联接使用
on
。Hibernate通过模型定义决定join子句使用哪一列

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

以下是参考资料:

任何源代码示例都将great@SumonBappi我需要您编写的模型定义,因为有一些不同的方法。下面是一个作为条件查询的左外部联接的示例:以下是HQL、条件和where查询中所有联接类型的示例:@sndyuk我已添加我的域。你能帮忙吗