如何在Grails中进行简单的表连接

时间:2013-05-09 16:17:38

标签: hibernate grails gorm

我对grails有点陌生,我在通过从这些表创建的域对象加入两个现有表时遇到了很多麻烦。有没有人知道如何在grails中这样做?以下是表格的外观以及我需要联接表格的示例。在此先感谢您的帮助。

Table1{ 

     field1table1 
} 

Table2{ 

     field1table2

     field2table2 
} 

我需要加入这两个表,其中field1table1 = field1table2和结果表连接我需要看起来像这样:

JoinedTable{

     field1table1 

     field2table2 
}

3 个答案:

答案 0 :(得分:6)

如果您的域没有任何关系(hasOne,hasMany等)您可以使用executequery执行类似这样的hql查询:

Table1.executeQuery("select * from Table1 t1,Table2 t2 where t1.field1table1 = t2.field2table2")

查看doc

希望这有帮助

答案 1 :(得分:1)

Grails映射域对象与对象引用之间的关联。这使用表的id列来映射关系。

对于Table1和Table2之间的多对多关系,在grails中执行此操作的典型方法如下:

TableOne {
    static hasMany = [tableOnes: TableOne]
}

TableTwo {
    static belongsTo = TableOne
    static hasMany = [tableTwos: TableTwo]
}

在这种情况下,Grails会自动生成一个连接表,其中包含每个表的ID的列。

如果您需要在非id列上加入关联,则必须自己管理它并使用HQL加入表。

答案 2 :(得分:0)

您可以使用这样的连接句子,这对我来说无论表格之间有任何关系配置

def result = Table1.executeQuery("select t1 from Table1 t1 left join Table2 t2 on t1.fieldtable1 = t2.fieldtable2")

希望这有帮助