1

这似乎是一个常见问题,但我无法解决它。我的 Spring 3.1.1 配置是

<bean id="sessionFactoryEditSolution" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="editSolutions-pool"/>
        <property name="mappingResources">
            <list>
                <value>/editsolutions.hibernate.cfg.xml</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
                <prop key="hibernate.cache.use_second_level_cache">true</prop>
                <prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.SingletonEhCacheProvider</prop>
                <prop key="net.sf.ehcache.configurationResourceName">/ehcache.xml</prop>
                <prop key="hibernate.max_fetch_depth">6</prop>
                <prop key="hibernate.default_schema">dbo</prop>
            </props>
        </property>
    </bean> 

这就是我试图获取配置对象的方式

Configuration editSolutionsConfiguration = `(Configuration)AppContext.getBean("&sessionFactoryEditSolution");`

最初我的应用程序有Hibernate 3,但为了将它与 Spring 3.1.1 集成,我已将其升级到Hibernate 4。这就是为什么我必须将 hibernate3.jar 保留在我的 lib 文件夹中以支持很少的 hibernate 3 特定代码行。

4

1 回答 1

1

几点注意事项:

  • 您不能在类路径上使用两个版本的休眠。您的旧代码应该更新
  • &x返回工厂 bean,它不返回生产的对象。即使没有与号,这也会返回SessionFactory, 而不是Configuration.
  • 使用 spring 你实际上不需要Configuration,它是在幕后处理的
  • 我们正在使用hibernate 3和spring 3.1。3.1.1 可能不同,但要么保留两者的较低版本,要么升级两者(包括代码)
于 2012-05-30T14:44:07.897 回答