Я обновляю свой технический стек с Spring 3 до Spring 4 и Hibernate 3 до HIbernate 4. В настоящее время мы используем Hibernate3Support и шаблон, теперь мы переходим к диспетчеру сущностей.Все записи БД находятся в файле hbm.xml, как показано ниже:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.mycompany.Employee" table="employee">
<id column="employeeid" name="employeeID">
<generator class="assigned"/>
</id>
<property name="name" type="string">
<column length="100" name="name"/>
</property>
<many-to-one class="com.mycompany.Department" name="department"/>
</class>
</hibernate-mapping>
Конфигурация была такой, как показано ниже:
<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="myDataSource"/>
</property>
<property name="mappingLocations">
<value>classpath*:com/**/*.hbm.xml</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">com.mycompany.ExMySQLInnoDBDialect</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
</bean>
Теперь мы хотим использовать систему как с новыми объектами, которые будут сделаны ваннотации, и вместе с ней нам нужно поддерживать файлы hbm.xml, поскольку у нас их много и мы не можем конвертировать их вручную.Новая конфигурация:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="packagesToScan" value="com.mycompany"/>
<property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/>
<property name="persistenceUnitPostProcessors">
<list>
<bean
class="org.springframework.data.jpa.support.ClasspathScanningPersistenceUnitPostProcessor">
<constructor-arg index="0" value="com.mycompany" />
<property name="mappingFileNamePattern" value="classpath*:com/**/*hbm.xml" />
</bean>
</list>
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
</bean>
Когда я запускаю приложение и получаю исключение для сопоставления для сущности, пожалуйста, дайте мне знать, как это сделать.