ในโครงการ Spring MVC ก่อนหน้าของฉัน ฉันใช้ Hibernate เป็นผู้ให้บริการสำหรับ JPA ฉันไม่จำเป็นต้องสร้างไฟล์ hibernate.cfg.xml
เพราะฉันได้ประกาศ Hibernate Session Factory ในไฟล์ Spring DispatcherServlet Context ของฉันและฉันได้ประกาศไฟล์ persistence.xml
แล้ว
ในโปรเจ็กต์ใหม่ของฉัน ฉันต้องการใช้ Hibernate โดยพื้นฐาน ฉันได้สร้างคลาสเอนทิตีจากโครงสร้างฐานข้อมูลของฉัน อย่างไรก็ตาม ยังไม่มีการสร้างคลาส IDEA DAO เพราะเหตุใด ฉันสามารถสร้างคลาส DAO ใน IDEA ในทางใดทางหนึ่งได้หรือไม่ และในระหว่างการสร้าง POJO นี้ คลาสเอนทิตีที่ฉันได้สร้าง Hibernate Session Factory ในไฟล์บริบท DispatcherSerlvet ด้วย
ฉันได้สร้างคลาส DAO แบบง่ายของตัวเองเพื่อตรวจสอบคลาสที่มีอยู่ในฐานข้อมูล แต่ข้อผิดพลาดนี้เกิดขึ้น:
Error in creating SessionFactory object./hibernate.cfg.xml not found
ดังนั้นฉันคิดว่าฉันต้องสร้าง hibernate.cfg.xml
และถ้าใช่ ฉันต้องเก็บการประกาศ Hibernate Session Factory ไว้ในไฟล์ DispatcherServlet Context ของฉันเลยหรือไม่
แก้ไข
<!-- 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 MVC และ Hibernate แต่แล้ว Transaction Manager
ล่ะ? สิ่งนี้จำเป็นสำหรับการดำเนินการหรือการกระทำอื่นหรือไม่?