В моем предыдущем проекте Spring MVC я использовал Hibernate в качестве поставщика JPA. Мне не нужно было создавать файл hibernate.cfg.xml
, потому что я объявил фабрику сеансов Hibernate в моем файле контекста Spring DispatcherServlet, и я объявил файл persistence.xml
.
В моем новом проекте я хотел бы в основном использовать Hibernate. Я создал классы сущностей из моей структуры базы данных. Однако в IDEA классы DAO не были сгенерированы, почему? Могу ли я каким-то образом генерировать классы DAO в IDEA? И во время создания этого POJO классы сущностей, которые я создал, также создают фабрику сеансов Hibernate в файле контекста DispatcherSerlvet.
Я создал свои собственные простые классы DAO для проверки сохраняющегося класса в базе данных. Но произошла эта ошибка:
Error in creating SessionFactory object./hibernate.cfg.xml not found
Итак, я предполагаю, что мне нужно создать hibernate.cfg.xml
. И если да, то должен ли я вообще хранить объявление Hibernate Session Factory в моем файле контекста DispatcherServlet?
ИЗМЕНИТЬ
<!-- 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
? Требуется ли это для других операций или действий?