【问题标题】:Entity class configuration in a Spring Java configurationSpring Java 配置中的实体类配置
【发布时间】:2014-02-11 17:10:49
【问题描述】:

在 Spring Hibernate XML 配置中,我有

<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 类,我的问题是如何做同样的事情?

【问题讨论】:

    标签: hibernate jpa spring-java-config


    【解决方案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;
        }
    

    【讨论】:

    • 谢谢。我刚刚发现我需要添加域包,而不是实体类作为 LocalSessionFactoryBuilder 类中 PackagesToScan 的一部分。有几种配置方式。对这个领域的新手来说很难。
    • @vic 好!-如果它工作正常,请记住接受答案:)
    猜你喜欢
    • 2015-11-19
    • 2023-03-21
    • 2016-10-24
    • 2012-10-19
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2017-07-17
    相关资源
    最近更新 更多