hibernate - Grails和Hibernate:未知实体:com.mypackage.Role

标签 hibernate grails groovy bootstrapping

我有一个grails应用程序。我已经安装了Spring Security Core插件2.0 RC2,并且正在BootStrap.groovy中创建角色,用户和requestmap。
我运行应用程序时,Grails抛出以下错误。

ERROR context.GrailsContextLoader  - Error initializing the application: Unknown entity: Role

这是我的Role类(由spring安全插件生成,并经过修改以扩展AbstractActivity,它是一个具有beforeInsert()方法/ closure并进行一些验证的抽象类)。
package com.mypackage

class Role extends AbstractDomain {

    String authority

    Date dateCreated
    Date lastUpdated
    User createdBy
    User updatedBy

    static mapping = {
        cache true
    }

    static constraints = {
        authority blank: false, unique: true

            createdBy nullable: true
            updatedBy nullable: true
    }
}    

抽象域
package com.mypackage

import com.mypackage.User

class AbstractDomain implements Serializable {

transient springSecurityService

def beforeInsert() {

    if(null != springSecurityService) {

        User user = springSecurityService.getCurrentUser()

        if(null != user) {

            this.createdBy = user
        }
    }
}

}

BootStrap.groovy
import com.mypackage.Role

class BootStrap {
    def init = { servletContext ->
          if (Role.findByAuthority('ROLE_ADMIN') == null)
                def adminRole = new Role(authority: 'ROLE_ADMIN').save(flush: true)
    }
    def destroy = {}
}

配置槽
grails.plugin.springsecurity.userLookup.userDomainClassName ='com.mypackage.User'
grails.plugin.springsecurity.userLookup.authorityJoinClassName 'com.mypackage.UserRole'
grails.plugin.springsecurity.authority.className = 'com.mypackage.Role'
grails.plugin.springsecurity.requestMap.className = 'com.mypackage.Requestmap'
grails.plugin.springsecurity.securityConfigType = 'Requestmap'

如何解决未知实体问题?

最佳答案

我找到了解决方案!
我的RoleDomain类扩展的AbstractDomain类位于“src / groovy”文件夹中,我忘了使其“抽象”。然后我在abstract之前添加了class关键字,它的工作原理就像魔术。感谢@mgg给我的想法here

所以,我的AbstractDomain类现在看起来像

abstract class AbstractDomain implements Serializable {
...

关于hibernate - Grails和Hibernate:未知实体:com.mypackage.Role,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22806774/

相关文章:

javascript - Groovy Grails 发送/接收变量

java - Grails:使用数据源插件,无法跨不同数据源连接域类

json - java.lang.NoSuchMethodError:没有这样的DSL方法 'readJSON'

groovy - 使用IntelliJ IDEA的Gradle构建中的Java软件包名称问题

java - Hibernate @ManyToOne 映射 - 无需设置 @Id 属性即可自动加载

javax.persistence.PersistenceException : Unable to build entity manager factory org. hibernate.engine.jndi.JndiException:无法查找 JNDI 名称

java - Hibernate一对多关系: can't remove children once parent is removed

Grails重复异常处理

java - Spring boot - 更新一个实体后,一对一关系未反射(reflect)在两个表上

eclipse - resources.groovy 中的 Grails bean 配置在 Eclipse STS 中失败