hibernate - 启用运行grails session 工厂

标签 hibernate grails multi-tenant

尝试与 Multi-Tenancy 在tomcat上发动 war 时出现错误

从日志文件:
由以下原因引起:org.springframework.beans.factory.BeanCreationException:创建名称为'sessionFactory'的bean时出错:调用init方法失败;嵌套的异常是org.hibernate.cache.NoCachingEnabledException:二级缓存未启用使用[hibernate.cache.use_second_level_cache | [hibernate.cache.use_query_cache]
在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1554)
在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)处
在org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:302)
在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
...更多42
原因:org.hibernate.cache.NoCachingEnabledException:二级缓存未启用使用情况[hibernate.cache.use_second_level_cache | [hibernate.cache.use_query_cache]
在grails.plugin.hibernatehijacker.hibernate.WrappedSessionFactoryBean.buildSessionFactory(WrappedSessionFactoryBean.java:45)

从我的数据源:

hibernate {
    cache.use_second_level_cache = true //true
    cache.use_query_cache = true //false
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3

    //singleSession = true // configure OSIV singleSession mode
    naming_strategy = sn.kiyas.base.CustomNamingStrategy
    }

grails 2.4.4 apache-tomcat 7.0.79

最佳答案

删除这些

hibernate {
    cache.use_second_level_cache = true //true
    cache.use_query_cache = true //false
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3

    //singleSession = true // configure OSIV singleSession mode
    naming_strategy = sn.kiyas.base.CustomNamingStrategy
    }

并添加此
hibernate:
    jdbc:
        use_get_generated_keys: true

关于hibernate - 启用运行grails session 工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44997772/

相关文章:

java - UnexpectedRollbackException - 完整的场景分析

Grails:如何扩展 FormTagLib?

java - 在 Tomcat 上使用 Jenkins 重新部署 Grails 应用程序填补了 PermGen 空间

java - RequestContextHolder.getRequestAttributes() null - Spring Security + Multi-Tenancy

Laravel Project Multi-Tenancy 、多库、一域

java - 如何修复 hibernate 上的 JndiException?

带枚举的 Hibernate 查找表

hibernate - 使用 JPA 中的自联接从特定行组中检索行号

grails - 有没有类似 Plone 的 CMS,但是是在 Grails 中?

python - 在 Multi-Tenancy 应用程序中动态设置 Flask-SQLAlchemy 数据库连接