在我之前的 Spring MVC 项目中,我使用 Hibernate 作为 JPA 的提供者。我不必创建hibernate.cfg.xml
文件,因为我已经在我的 Spring DispatcherServlet 上下文文件中声明了 Hibernate Session Factory 并且我已经声明了persistence.xml
文件。
在我的新项目中,我基本上想使用 Hibernate。我已经从我的数据库结构中生成了实体类。但是在 IDEA DAO 中没有生成类,为什么?我可以以某种方式在 IDEA 中生成 DAO 类吗?在生成这个 POJO 期间,我还在 DispatcherSerlvet 上下文文件中创建了 Hibernate Session Factory 的实体类。
我创建了自己的简单 DAO 类来检查数据库中的持久类。但是出现了这个错误:
Error in creating SessionFactory object./hibernate.cfg.xml not found
所以我假设我必须创建hibernate.cfg.xml
. 如果是的话,我是否必须在我的 DispatcherServlet 上下文文件中保留 Hibernate Session Factory 声明?
编辑
<!-- Hibernate session factory -->
<beans:bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<beans:property name="dataSource">
<beans:ref bean="dataSource" />
</beans:property>
<beans:property name="hibernateProperties">
<beans:props>
<beans:prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</beans:prop>
<beans:prop key="hibernate.show_sql">true</beans:prop>
<beans:prop key="hibernate.hbm2ddl.auto">update</beans:prop>
<beans:prop key="hibernate.connection.url">jdbc:mysql://localhost/finances</beans:prop>
<beans:prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</beans:prop>
<beans:prop key="hibernate.connection.username">root</beans:prop>
<beans:prop key="hibernate.connection.password">root</beans:prop>
</beans:props>
</beans:property>
<beans:property name="annotatedClasses">
<beans:list>
<beans:value>my.package.FirstClass</beans:value>
<beans:value>my.package.SecondClass</beans:value>
</beans:list>
</beans:property>
</beans:bean>
<!-- Hibernate session factory end -->
<beans:bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<beans:property name="sessionFactory" ref="sessionFactory" />
</beans:bean>
编辑#2
我已将带注释的类和连接定义移动到hibernate.cfg.xml
文件中。我已经删除了会话工厂定义以及Transaction Manager
spring 配置文件中的定义。我在我的数据库中的简单持久对象工作正常。那么也许这是使用 Spring MVC 和 Hibernate 的最短方法?但是呢Transaction Manager
?这是其他操作或操作所要求的吗?