0

我有以下情况,

Domain class A which hasMany B's
Domain class B which hasMany C's and belongsTo A
Domain class C which belongsTo B

Class E {
 A a
 B b
 C c

 }
 Class C {
  String name
 }

我想查询 E 值,即获取一些 E 属性的列表,例如在这种情况下 c.name 基于用户在选择框中选择的值,即用户从多个选择框中选择 A 和 B 并基于此条件,a获得名称列表。

换句话说,我想在 c 中找到满足 a 和 b 设置的条件的所有名称

试图弄清楚 GORM 查询无济于事。

谢谢

4

1 回答 1

0

我通过使用原始 SQL 连接解决了这个问题。不确定这是否是最好的方法,但它对我有用。我从A和B得到参数,即

def fromA = params.someCriteriaValueInA
def fromB = params.someCriteriaValueInB

请注意,这些是从 gsp 中获取的。此外,将使用链式选择基于fromA值加载fromB值。

在 grails 控制器/服务中...

def db = new Sql(dataSource)
def result = db.rows("your sql to go here")

然后你可以对结果做任何你想做的事情,例如在模板中操作它

render(template: "myResults", model:[result :result])

不要忘记在控制器/服务中注入dataSource bean,并进行必要的导入

import groovy.sql.Sql

请注意,这涉及遍历许多域类实例,对于喜欢原始 SQL 的人来说,这似乎更容易。希望采用不同的方法,也许使用 GORM 的标准。

于 2012-11-05T07:47:05.460 回答