为什么这个Grails(GORM)查询无效?

时间:2013-10-17 14:09:31

标签: grails gorm

我在Grails中有以下域模型我正在尝试运行查询,但它失败了,说这是一个无效的查询。

查询如下:

  StringBuilder queryBuf = new StringBuilder();
    queryBuf.append("select rr.role from ReportRole rr ");
    def newroles = ReportRole.findAll(queryBuf)

并且,域名看起来像这样:

package auth

import java.util.Date
import auth.Report
import auth.Role

class ReportRole {
Long id
Report report
Role role
Date dateCreated
Date lastUpdated
Person createdBy

static mapping = {
    table 'CIT_RM_Report_Role'
    version false
    role joinTable:[name:'AU_ROLE_DESCR', key:'role_id', column:'id']
    columns {
        id column:'report_role_id'
        report column:'report_id'
        createdBy column:'created_by'
        dateCreated column:'create_date'
        lastUpdated column:'last_updated'

        }
    }
}

package auth;
class Role {
static hasMany = [people: Person]
Long id;
String authority;
String description;
static mapping = {
    table 'AU_ROLE_DESCR'
    people joinTable:[name:'AU_PERSON_ROLE', key:'AUTHORITY_ID', column:'PERSON_ID']
    version false;
    }
}

任何人都可以告诉我为什么这是无效的。我有一些类似的域,像这样的查询将起作用。

1 个答案:

答案 0 :(得分:2)

我认为findAll仅限于返回域名列表而不是特别是任何关联/元素。您可以更好地使用executeQuery来实现您的目标:

ReportRole.executeQuery("select rr.role from ReportRole rr")