[英]Grails Domain class association with stored procedure resultset
大家好,
是否可以将存储过程的结果集关联到grails域类...?
我将这个数据库视图映射到一个域类,它的工作原理像一个超级按钮,但是在典型的功能中,我需要根据最终用户给出的某些参数生成数据库视图。 在那种情况下,我无法将参数传递给数据库视图,因此我创建了一个存储过程,该过程将为我提供与视图相同的结果集,但是在进行涉及多个表并从最终用户获取参数的计算之后。
在grails视图(list.gsp)中,我使用的大多数插件都基于域类,例如:filterpane。 所以我不能简单地从存储的过程中显示结果集到grails中
我是个新手。 我经历了很多麻烦,在Google上搜索了很多,但是无法获得有关此主题的任何建议。
当需要域类中的计算字段时,Grails提供了临时字段供您使用。 您可以将计算逻辑包装在服务中,并在使用前更改域类实例。
class MyDomain {
BigDecimal calcField
static transients = ['calcField']
}
class MyService {
def dataSource
List<MyDomain> getInstances() {
def instances = MyDomain.findAllBy...()
instances.each { MyDomain ins ->
doCalcField(ins)
}
instances
}
void doCalcField(MyDomain myDomain) {
groovy.sql.Sql sql = new Sql(dataSource)
//call procedure, returning values as OUT
myDomain.calcField = calcField //assign out to domain instance
}
}
根据您的计算,最好直接在服务中进行操作,以使代码数据库独立。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.