Я изучаю Hibernate и Spring. У меня есть несколько классов сущностей. Ниже приведена структура каталогов моего проекта:
здесь LoginUser
и Student
- две сущности, отмеченные @Entity
. Я настроил org.springframework.orm.hibernate4.LocalSessionFactoryBean
в dispatcher-servlet.xml
файле
<beans:bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="packagesToScan" value="com.sachin.onlineexam.login.entity"></beans:property>
<beans:property name="hibernateProperties">
<beans:props>
<beans:prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</beans:prop>
<beans:prop key="hibernate.hbm2ddl.auto">update</beans:prop>
<beans:prop key="hibernate.show_sql">true</beans:prop>
</beans:props>
</beans:property>
</beans:bean>
С этой конфигурацией я могу сохранить экземпляр LoginUser
в базе данных. Но когда я помещаю несколько значений для свойства packagesToScan
, тогда выдается исключение org.hibernate.MappingException: неизвестный объект: com.sachin.onlineexam.login.entity.LoginUser
Вот конфигурация с несколькими (массивом) значениями для packagesToScan
<beans:bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="packagesToScan">
<beans:array>
<beans:value>
com.sachin.onlineexam.login.entity
</beans:value>
<beans:value>
com.sachin.onlineexam.student.entity
</beans:value>
</beans:array>
</beans:property>
<beans:property name="hibernateProperties">
<beans:props>
<beans:prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect
</beans:prop>
<beans:prop key="hibernate.hbm2ddl.auto">update</beans:prop>
<beans:prop key="hibernate.show_sql">true</beans:prop>
</beans:props>
</beans:property>
</beans:bean>
ПРОБЛЕМА: Когда packagesToScan
настроен для одного значения пакета как <beans:property name="packagesToScan" value = "com.sachin.onlineexam.login.LoginUser/>
, тогда мое приложение работает FINE и данные сохраняются в базе данных. Но когда он настроен на <beans:array><beans:value>...</beans:value></beans:array>
или <beans:list>...</beans:list>
, тогда выше exception
выбрасывается. Предоставление более одного значения внутри тега <beans:array></beans:array>
также Не работает и выдача того же исключения.
Это проблема со свойством packagesToScan
или чем-то еще?
ПРИМЕЧАНИЕ: Я использую версию hibernate 4 4.2.11
и версию Spring 4 4.3.23
. Я также пробовал с Hibernate 5 и Spring 5, хотя не работает.