Конфигурация класса сущностей в конфигурации Spring Java

В XML-конфигурации Spring Hibernate у меня есть

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    // ...
    <property name="annotatedClasses">
        <list>
            <value>com.abc.xyz.Foo</value>
            // ...
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
        // ....
        </props>
    </property>
    //..
</bean>

Я знаю, что эквивалентом конфигурации Spring Java является следующее: LocalSessionFactoryBuilder(dataSource()).addAnnotatedClasses(Foo.class).buildSessionFactory();

Мой вопрос: как сделать то же самое, если я использую не класс LocalSessionFactoryBuilder, а классы HibernateJpaVendorAdapter и LocalContainerEntityManagerFactoryBean?


person vic    schedule 21.01.2014    source источник


Ответы (1)


Вы можете сделать это следующим образом:

    @Bean
    public AbstractEntityManagerFactoryBean entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
        entityManagerFactory.setDataSource(dataSource);
        entityManagerFactory.setPackagesToScan("com.abc.xyz.Foo");
        entityManagerFactory.setPersistenceProvider(new HibernatePersistence());
        entityManagerFactory.getJpaPropertyMap().put("hibernate.hbm2ddl.auto", "validate");

        return entityManagerFactory;
    }
person Jakub Kubrynski    schedule 21.01.2014
comment
Спасибо. Я только что понял, что мне нужно добавить пакет домена, но не класс сущности как часть PackagesToScan в классе LocalSessionFactoryBuilder. Есть несколько способов настройки. Новичку в этой сфере тяжело. - person vic; 22.01.2014
comment
@vic Хорошо! Не забудьте принять ответ, если он работает правильно :) - person Jakub Kubrynski; 22.01.2014