grails gorm hasMany查询基于gsp页面中的选择选项

时间:2012-07-28 23:59:47

标签: grails hql gorm

我有以下情况,

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并基于此标准,获得名单。

换句话说,我想在c中找到满足a和b

设置条件的所有名称

试图找出GORM查询无济于事。

感谢

1 个答案:

答案 0 :(得分:0)

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

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

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

在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的标准。