在域类上使用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)
任何人都可以提供有关此错误含义的任何见解吗?
提前致谢!
答案 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
的属性,而另一个类定义属性,将来会遇到维护问题。