在grails中使用数据库表(不是域)中的数据

时间:2014-05-20 10:33:24

标签: grails grails-domain-class audit-logging

我正在使用Grails Audit Logging插件,该插件使用grails域类中的更改填充数据库表。

现在,我需要将插件持久化的数据(行)显示到视图中。

如何在grails中使用数据库表(不是域类)中的数据?

2 个答案:

答案 0 :(得分:2)

不知道“使用信息”是什么意思,很难说。但是,如果您想查询该表,那么使用Groovy中的sql包就足够了。控制器可能如下所示:

package com.example

import groovy.sql.GroovyRowResult
import groovy.sql.Sql

class MyController {
  def dataSource // injected data source from application

  def index() {
    def db = new Sql(dataSource)
    def results = db.rows("SELECT col1, col2, col3 FROM my_table")
    render view: 'index', model: results
}

当然,您可以根据需要在GSP中显示结果。

答案 1 :(得分:0)

我创建了一个grails域,它将与grails-audit-plugin生成相同的数据库表。

然后我使用这个新创建的域来检索插件填充的数据库表中的数据。

我所做的域名如下。

class AuditLog {

    String actor
    String className
    Date dateCreated
    String eventName
    Date lastUpdated
    String newValue
    String oldValue
    String persistedObjectId
    Long persistedObjectVersion
    String propertyName
    String uri

    static constraints = {
        dateCreated nullable: false
        lastUpdated nullable: false
        newValue nullable: true
        oldValue nullable: true
        persistedObjectVersion nullable: true
    }

    static mapping = {
        version false
    }
}