Ответ 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 и, следовательно, не имеет эффекта.