Почему "annotatedClasses" необходим, если существует @Entity?

Привет, я создаю приложение spring -hibernate. Мне действительно нужна конфигурация ниже?

    <property name="annotatedClasses">
        <list>
            <value>org.fixus.springer.model.User</value>
        </list>
    </property>

Я установил аннотацию в свой root-context.xml

<mvc:annotation-driven />
<context:component-scan base-package="org.fixus.springer" />
<context:component-scan base-package="org.fixus.springer.model" />

Теперь не нужно спящий режим автоматически извлекать все из этих пакетов с аннотацией @Entity и преобразовывать его в таблицу? Пока что без аннотированных кластеров он не будет создавать таблицу из объекта

Ответы

Ответ 1

Используйте docs, Люк!

[...] Пример определения AnnotationSessionFactoryBean bean:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="annotatedClasses">
        <list>
            <value>test.package.Foo</value>
            <value>test.package.Bar</value>
        </list>
    </property>
</bean>

Или при использовании сканирования классов для автоматического определения классов сущностей:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="packagesToScan" value="test.package"/>
</bean>

Как вы видите, у вас есть выбор между явным определением всех классов или только пакетом для сканирования. <context:component-scan/> не распознает аннотации Hibernate/JPA и, следовательно, не имеет эффекта.