Java 从婴儿床应用程序中删除hibernate.cache
我正在尝试制作一个最小的命令行spring应用程序。最小化,以便我能够理解从现有项目中抄袭的所有SpringXML配置。现有项目在某一点上配置了hibernate缓存,但编写它的人告诉我,它已被禁用。但不知何故,我似乎已经掌握了该配置的某些部分。当我运行我的应用程序时,我得到: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
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,但不想使用它的缓存。我想可能就是这样。