Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从婴儿床应用程序中删除hibernate.cache_Java_Spring_Hibernate_Caching - Fatal编程技术网

Java 从婴儿床应用程序中删除hibernate.cache

Java 从婴儿床应用程序中删除hibernate.cache,java,spring,hibernate,caching,Java,Spring,Hibernate,Caching,我正在尝试制作一个最小的命令行spring应用程序。最小化,以便我能够理解从现有项目中抄袭的所有SpringXML配置。现有项目在某一点上配置了hibernate缓存,但编写它的人告诉我,它已被禁用。但不知何故,我似乎已经掌握了该配置的某些部分。当我运行我的应用程序时,我得到: Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with n

我正在尝试制作一个最小的命令行spring应用程序。最小化,以便我能够理解从现有项目中抄袭的所有SpringXML配置。现有项目在某一点上配置了hibernate缓存,但编写它的人告诉我,它已被禁用。但不知何故,我似乎已经掌握了该配置的某些部分。当我运行我的应用程序时,我得到:

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'analysisDBSessionFactory' defined in class path resource [hibernate-config.xml]: Invocation of init method failed; nested exception is org.hibernate.cache.NoCachingEnabledException: Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
<more>
线程“main”org.springframework.beans.factory.BeanCreationException中的异常:创建类路径资源[hibernate config.xml]中定义的名为“analysisDBSessionFactory”的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:1455)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
位于org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
位于org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
位于org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
位于org.springframework.beans.factory.support.DefaultListableBeanFactory.PreInstanceSingleton(DefaultListableBeanFactory.java:567)
位于org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
我是根据库构建的,与另一个应用程序(用于缓存)的lib代码版本相同。我已经为“使用二级缓存”和“使用查询缓存”对我的所有代码和库代码进行了灰色化,这些字符串都没有

我知道这两个字符串的hibernate.cache设置,并将它们设置为false(和true),但这并没有改变异常

=======

我的问题是,为什么那些hibernate.cache属性还在使用?当然,我抄袭的代码可能没有完全删除缓存。对hibernate.cache进行Grepping也不会在我的代码或库代码中产生任何点击。不过有很多hibernate配置,我想保留它们。 我现在还不想发布随机xml,但如果有帮助的话,我有很多东西可以发布。谢谢

[以下是我认为相关的bean配置:

<!-- Configure multiple SessionFactories -->
<bean id="parentSessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" abstract="true">
    <property name="configurationClass"  value="org.hibernate.cfg.AnnotationConfiguration"/>
    <property name="packagesToScan">
        <list>
            <value>com.artfact.cps.model.db</value>
            <value>com.artfact.common.model.db</value>
        </list>
    </property>   
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
            <prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}</prop>
            <prop key="hibernate.order_inserts">${hibernate.order_inserts}</prop>
            <prop key="hibernate.order_updates">${hibernate.order_updates}</prop>
            <prop key="hibernate.generate_statistics">${hibernate.generate_statistics}</prop>
            <!-- Something to consider:   -->
            <!-- <prop key="hibernate.connection.isolation">${hibernate.connection.isolation}</prop> -->
        </props>
    </property>
</bean>
<bean id="analysisDBSessionFactory" parent="parentSessionFactory">
    <property name="dataSource" ref="AnalysisDBDataSource" />
</bean>

com.artfact.cps.model.db
com.artfact.common.model.db
${hibernate.dial}
${hibernate.show_sql}
${hibernate.format_sql}
${hibernate.jdbc.batch_size}
${hibernate.order\u inserts}
${hibernate.order\u updates}
${hibernate.generate_statistics}

]

您是否能够发布
analysisDBSessionFactory的SpringXML配置。谢谢。你有任何用@Cache注释的实体类吗?我现在看到的迹象表明,必须禁用那些(或者可能只有一个)hibernate.Cache道具,如果你想使用hibernate,但不想使用它的缓存。我想可能就是这样。