0

我有以下课程

class SentryUser {

    transient springSecurityService

    String userName
    String password
    boolean enabled
    boolean accountExpired = false
    boolean accountLocked = false
    boolean passwordExpired   = false

    static constraints = {
        userName blank: false, unique: true
        password blank: false
    }

    static mapping = {
        password column: '`password`'
    }

    Set<SentryRole> getAuthorities() {
        SentryUserSentryRole.findAllBySentryUser(this).collect { it.sentryRole } as Set
    }

    def beforeInsert() {
        encodePassword()
    }

    def beforeUpdate() {
        if (isDirty('password')) {
            encodePassword()
        }
    }

    protected void encodePassword() {
        password = springSecurityService.encodePassword(password)
    }
}

我在引导程序中调用以下代码

def admin = new SentryUser(userName: "sample@sample.com",
                enabled: true).save(failOnError: true)

并得到以下错误

context.GrailsContextLoader Error executing bootstraps: groovy.lang.MissingMethodException: No signature of method: SentryUser.save() is applicable for argument types: () values: []

我正在使用 grails 2.1.1 并使用 spring 安全插件。

4

1 回答 1

1

您正在打电话save(Map),但 MME 毫无争议地抱怨save()。在我的应用程序中没有安装任何持久性插件(hibernate/mongodb)之前,我已经看到了这种差异——它是一个插件项目,我试图作为独立应用程序运行,而新插件项目的默认 BuildConfig不包括对休眠的依赖。

于 2012-09-28T19:38:24.910 回答