我当前正在将grails代码从2.5.6版本迁移到3.3.9。在3.3.9上,我观察到了这种奇怪的行为:
有一个带有命名查询块的超域类
Unpermitted parameter: :redirect_to
和一个子域类
package grailsthree
class TestSuperSimpleClass {
String superClassValue
static constraints = {
}
static namedQueries = {
superNamedQuery { String value ->
eq('superClassValue', value)
}
}
@Override
public String toString() {
return superClassValue
}
}
如果我调用TestSimpleClass.subNamedQuery(“ value1”,“ value2”)。list(),则会出现以下错误:
package grailsthree
class TestSimpleClass extends TestSuperSimpleClass {
String simpleClassValue
static namedQueries = {
subNamedQuery {String value1, String value2 ->
eq('simpleClassValue', value1)
superNamedQuery(value2)
}
}
@Override
public String toString() {
return simpleClassValue + " -- " + superClassValue
}
}
好像在Grails 3.3.9上,子类没有从超类继承命名查询。对于Grails 2.5.6来说,这很好用。
在这种情况下,我们需要在Grails 3.3.9中进行其他处理吗?
答案 0 :(得分:0)
因此,不再建议使用明显命名的查询,而是根据 https://github.com/grails/grails-core/issues/9260#issuecomment-234713397