无法继承命名查询

时间:2019-03-22 11:23:40

标签: inheritance grails gorm named-query

我当前正在将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中进行其他处理吗?

1 个答案:

答案 0 :(得分:0)

因此,不再建议使用明显命名的查询,而是根据 https://github.com/grails/grails-core/issues/9260#issuecomment-234713397