java - 使用 LocalContainerEntityManagerFactoryBean 创建 session ?

标签 java spring hibernate session jpa

我是第一次使用Spring。是否可以使用 LocalContainerEntityManagerFactoryBean 来创建类似于 hibernate session 的内容?

我熟悉从 hibernate.cfg.xml 以及 JPA 中的 entityManagerFactory 创建 hibernate session 。

但是如何使用 LocalContainerEntityManagerFactoryBean 才能针对我的数据库执行事务?

最佳答案

您必须定义 jpa 事务管理器,它将配置到您的 LocalContainerEntityManagerFactoryBean,例如:

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
  </bean>



<bean id="entityManagerFactory"

        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceUnitName" value="enginePU" />
        <property name="dataSource" ref="dataSource" />
        <property name="jpaProperties">
           <props>
                <prop key="hibernate.hbm2ddl.auto">none</prop>
                <prop key="hibernate.default_schema">dbo</prop>
                <prop key="hibernate.default_catalog">ab</prop>
           </props>
        </property>
      </bean>

那么如果您将事务配置为注释驱动:

<tx:annotation-driven />

你可以在你的 daos 中使用entityManager,如下所示:

    @PersistenceContext
    protected EntityManager entityManager;


    @Override
    @Transactional(propagation = Propagation.REQUIRED)
    public void persist(Object o) throws IOException {
         entityManager.persist(o);
    }

希望有帮助。

关于java - 使用 LocalContainerEntityManagerFactoryBean 创建 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35605595/

相关文章:

java.lang.NoClassDefFoundError : org/hibernate/cache/TimestampsRegion

java - 如何在我的 spring 3.2 和 hibernate 4 集成项目上为 java 配置实现 AbstractAnnotationConfigDispatcherServletInitializer?

java - 如何为多个 session 实现 cron 作业,每个 session 都有自己的时间间隔

java - org.springframework.orm.hibernate3.HibernateSystemException : Unknown entity: java. util.ArrayList

java - Spring Boot如何在发送响应之前修改实体中的列表

javascript - WebSocket - 无效的状态行javascript

java - 使用 JDBC 从 MySQL 数据库中提取数据时如何避免丢失标点符号?

java - 再次读取同一个文件时的内存管理

java - 尝试弄清楚如何打印某个字符串(如果该字符串包含某个第一个字符)

hibernate - 如何配置 JPA 2.0 和 Hibernate 3.5.2 以使用 EHCache 作为二级缓存和查询缓存?