繁体   English   中英

Grails域类与存储过程结果集的关联

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM