我有以下课程
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)
}
}
我在bootstrap中调用以下代码
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 security插件。
答案 0 :(得分:1)
您正在调用save(Map)
,但MME抱怨save()
没有参数。我之前在我的应用程序中没有安装任何持久性插件(hibernate / mongodb)时看到了这种差异 - 这是一个插件项目,我试图作为一个独立的应用程序运行,并且是一个新的插件项目的默认BuildConfig不包括对hibernate的依赖。