我在 Spring 中的 hibernate 配置有问题。 我的项目是一个存储库项目。这是pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Framework-core-data-oracle</groupId>
<artifactId>Framework-core-data-oracle</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.2.8.Final</version>
</dependency>
</dependencies>
这是我的 bean 定义:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
这是我的 hibernate 配置 xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@10.10.10.4:1521:BAGSTORAGE</property>
<property name="hibernate.connection.username">system</property>
<property name="hibernate.connection.password">bagstorage!</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="hibernate.default_schema">BAGSTORAGE</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
当我尝试 Autowiring SessionFactory 时,出现此错误:
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.hibernate4.LocalSessionFactoryBean] for bean with name 'sessionFactory' defined in ServletContext resource -> nested exception is java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean
我在pom中添加了spring orm,spring mvc版本> 3,所以hibernate 4没有问题。有什么想法吗?
我有这样的情况: 项目A:核心项目,maven中有spring依赖 项目B:Repository项目,其中有核心项目(项目A)、hibernate-core、oracle和spring-orm依赖 项目 C:工作项目,具有 beans 配置以及依赖项中的项目 A 和项目 B
谢谢
最佳答案
您的配置看起来正确,但我发现您依赖于 spring-core
3.1.1 和 spring-orm
4.0.0。
您确实应该调整所有 Spring 模块的版本。请尝试将 spring-core
升级到版本 4.0.0,看看错误是否消失?
关于java - Spring MVC + hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21109502/