以前の Spring MVC プロジェクトでは、Hibernate を JPA のプロバイダーとして使用しました。hibernate.cfg.xml
Spring DispatcherServlet Context ファイルで 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 Context ファイルに 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
ですか?これは、別の操作またはアクションで必要ですか?