我对grails有点陌生,我在通过从这些表创建的域对象加入两个现有表时遇到了很多麻烦。有没有人知道如何在grails中这样做?以下是表格的外观以及我需要联接表格的示例。在此先感谢您的帮助。
Table1{
field1table1
}
Table2{
field1table2
field2table2
}
我需要加入这两个表,其中field1table1 = field1table2和结果表连接我需要看起来像这样:
JoinedTable{
field1table1
field2table2
}
答案 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")
希望这有帮助