这正在工作:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> ...
但是升级到上述版本会破坏它。使用Spring 3.1.Release和Hibernate 4.0.0.FINAL创建SessionFactory bean 的正确方法是什么?
部署时的错误是:
嵌套的异常是java.lang.NoClassDefFoundError:Lorg / hibernate / cache / CacheProvider;
编辑 添加了我自己的答案,为我修复了它。
我认为你应该使用org.springframework.orm.hibernate4.LocalSessionFactoryBean而不是 org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
org.springframework.orm.hibernate4.LocalSessionFactoryBean
org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
从LocalSessionFactoryBeanjavadoc:
LocalSessionFactoryBeanjavadoc:
注意:LocalSessionFactoryBean的此变体需要Hibernate 4.0或更高版本。它的作用类似于orm.hibernate3包中的同名类。但是,实际上,它更接近AnnotationSessionFactoryBean,因为其核心目的是从注释扫描中引导SessionFactory。