Hibernate 如何在Grails中进行简单的表连接
我对grails有点陌生,通过从这些表创建的域对象连接两个现有表时遇到了很多麻烦。有人知道如何在grails中实现这一点吗?下面是表的外观,以及我需要连接表的外观示例。提前谢谢你的帮助Hibernate 如何在Grails中进行简单的表连接,hibernate,grails,gorm,Hibernate,Grails,Gorm,我对grails有点陌生,通过从这些表创建的域对象连接两个现有表时遇到了很多麻烦。有人知道如何在grails中实现这一点吗?下面是表的外观,以及我需要连接表的外观示例。提前谢谢你的帮助 Table1{ field1table1 } Table2{ field1table2 field2table2 } 我需要连接这两个表,其中field1table1=field1table2,结果表连接我需要如下所示: JoinedTable{ f
Table1{
field1table1
}
Table2{
field1table2
field2table2
}
我需要连接这两个表,其中field1table1=field1table2,结果表连接我需要如下所示:
JoinedTable{
field1table1
field2table2
}
如果您的域没有任何关系(hasOne、hasMany等),您可以使用executequery执行hql查询,如下所示:
Table1.executeQuery("select * from Table1 t1,Table2 t2 where t1.field1table1 = t2.field2table2")
看
希望这有助于Grails映射具有对象引用的域对象之间的关联。这将使用表的id列映射关系 对于表1和表2之间的多对多关系,在grails中实现这一点的典型方法如下:
TableOne {
static hasMany = [tableOnes: TableOne]
}
TableTwo {
static belongsTo = TableOne
static hasMany = [tableTwos: TableTwo]
}
在这种情况下,Grails会自动生成一个包含每个表ID列的联接表
如果您需要在非id列上进行关联联接,您必须自己管理它并使用HQL联接表。您可以使用这样的联接语句,这对我来说非常有用,不需要表之间的任何关系配置
def result = Table1.executeQuery("select t1 from Table1 t1 left join Table2 t2 on t1.fieldtable1 = t2.fieldtable2")
希望这能有所帮助感谢您提供的信息,在本例中,我是基于非id字段加入的,因此我最终选择了HQL。