没有为参数指定值 - Grails

时间:2014-01-29 22:46:17

标签: grails

在域类上使用find by时遇到问题:

我得到的错误是: ERROR util.JDBCExceptionReporter - No value specified for parameter 2

域类是:

class AppDetail {

String name
String url
Boolean active

static hasMany = [authString:AppIdentifier]


static constraints = {
    name(unique:true,blank:false)
    active(nullable:true)
}

class AppIdentifier {

Date added
String authString

static belongsTo = [authString:AppDetail]

static constraints = {

    added()
    authString(blank:false)

}

查找依据:

def identifier = AppIdentifer.findByAuthString('test')
def appDetails = AppDetail.findByAuthString(identifier) 

任何人都可以提供有关此错误含义的任何见解吗?

提前致谢!

2 个答案:

答案 0 :(得分:0)

您有太多名为“authString”的字段。这是重做相同类的另一种方法:

class AppDetail {

String name
String url
Boolean active

static hasMany = [identifiers:AppIdentifier]


static constraints = {
    name(unique:true,blank:false)
    active(nullable:true)
}

class AppIdentifier {

Date added
String authString

static belongsTo = [appDetail:AppDetail]

static constraints = {

    added()
    authString(blank:false)

}

def identifier = AppIdentifer.findByAuthString('test')
def appDetails = identifier.appDetail

答案 1 :(得分:0)

您将authString定义为String AND AppDetail:

String authString

static belongsTo = [authString:AppDetail]

删除String authString或将其更改为AppDetail authString

BTW从GORM的角度来看,属性命名并不重要。但是如果你定义一个名称为String的属性,而另一个类定义属性,将来会遇到维护问题。