JPA entityManagerFactory配置详解
2017-07-05 17:07
477 查看
以下是本人的一些理解 如有误的地方欢迎指出 谢谢!
jpa.LocalContainerEntityManagerFactoryBean 与 hibernate的sessionFactory一样都实现了对session的操作
LocalContainerEntityManagerFactoryBean的优势在于当系统需要更换orm框架时不需要太多改动 兼容性好
缺点则是无法使用一些hibernate session的高级功能
下面我们来看LocalContainerEntityManagerFactoryBean 的配置
jpa.LocalContainerEntityManagerFactoryBean 与 hibernate的sessionFactory一样都实现了对session的操作
LocalContainerEntityManagerFactoryBean的优势在于当系统需要更换orm框架时不需要太多改动 兼容性好
缺点则是无法使用一些hibernate session的高级功能
下面我们来看LocalContainerEntityManagerFactoryBean 的配置
<!-- jpa Entity Factory 效果等同于 Hibernate的sessionFactory 都是用来操作session的 entityManagerFactory 更加灵活 在项目更换orm框架的时候代码不需要大改动 还是不能使用一些hibernate的高级功能 --> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSourceProxy" /> <property name="packagesToScan" ref="com.ssharing.basicflt.**.entity" /> <!-- 持久化单元名称 --> <property name="persistenceUnitName" value="${jpa.persistenceUnitName}" /> <!-- 持久化实现厂商 --> <property name="persistenceProvider"> <bean class="org.hibernate.ejb.HibernatePersistence" /> </property> <!-- 用于设置实现厂商JPA实现的特定属性 如hibernate的generateDdl --> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="generateDdl" value="${jpa.generateDdl}" /> <property name="database" value="${jpa.database}" /> <property name="showSql" value="${jpa.showSql}" /> </bean> </property> <!-- 数据库方言 如mysql中分页只需要使用limit就可以了 本例使用mssql 故注释掉 --> <!-- <property name=""> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" /> </property> --> <!-- 指定JPA属性 --> <property name="jpaPropertyMap"> <map> <!-- javax.persistence.validation.mode默认情况下是auto的,就是说如果不设置的话它是会自动去你的classpath下面找一个bean-validation**包,但是找不到,所以beanvalitionFactory错误。 --> <entry key="javax.persistence.validation.mode" value="NONE" /> <!-- 关闭命名查询 --> <entry key="hibernate.query.startup_check" value="false" /> <!-- hibernate进行自动转换true 1, false 0, yes ’Y’, no ’N’ 如mssql只支持bit(0、1)类型 --> <entry key="hibernate.query.substitutions" value="${hibernate.query.substitutions}" /> <!-- 为Hibernate关联的批量抓取设置默认数量.取值 建议的取值为4, 8, 和16 --> <entry key="hibernate.default_batch_fetch_size" value="${hibernate.default_batch_fetch_size}" /> <!-- 为单向关联(一对一, 多对一)的外连接抓取(outer join fetch)树设置最大深度. 值为0意味着将关闭默认的外连接抓取.取值 建议在0到3之间取值 --> <entry key="hibernate.max_fetch_depth" value="${hibernate.max_fetch_depth}" /> <!-- 如果开启, Hibernate将收集有助于性能调节的统计数据. --> <entry key="hibernate.generate_statistics" value="${hibernate.generate_statistics}" /> <!-- Enables the use of bytecode manipulation instead of runtime reflection --> <entry key="hibernate.bytecode.use_reflection_optimizer" value="${hibernate.bytecode.use_reflection_optimizer}" /> <!-- 开启关闭二级缓存 --> <entry key="hibernate.cache.use_second_level_cache" value="${hibernate.cache.use_second_level_cache}" /> <!-- 开启关闭查询缓存 --> <entry key="hibernate.cache.use_query_cache" value="${hibernate.cache.use_query_cache}" /> <entry key="hibernate.cache.region.factory_class" value="${hibernate.cache.region.factory_class}" /> <!-- ehcache配置文件路径 --> <entry key="net.sf.ehcache.configurationResourceName" value="${net.sf.ehcache.configurationResourceName}" /> <!-- 强制Hibernate以更人性化的格式将数据存入二级缓存 --> <!-- 监控二级缓存数据需要将该项以及 hibernate.generate_statistics 设置为true --> <entry key="hibernate.cache.use_structured_entries" value="${hibernate.cache.use_structured_entries}" /> </map> </property> </bean>
相关文章推荐
- JPA EntityManager详解
- JPA:LocalContainerEntityManagerFactoryBean与LocalEntityManagerFactoryBean的区别
- 解决集成jpa时无法创建entityManagerFactory的问题
- jpa entityManager 配置
- 在Spring环境中建立JPA Spring JPA 提供了三种方法创建JPA EntityManagerFactory:
- JPA 实体管理器工厂(EntityManagerFactory)
- JPA EntityManager persist 方法详解
- JPA EntityManager详解(二)
- 12. JPA EntityManager persist 方法详解
- JPA EntityManagerFactory Vs Hibernate’s SessionFactory
- JPA与Spring2.5整合时发生不能创建entityManagerFactory的问题解决方法
- How to use JPA from a JBoss Web application ?(jboss 中如何使用线程安全的EntityManagerFactory )
- JPA EntityManager详解(2/3)
- SPRING IN ACTION 第4版笔记-第十一章Persisting data with object-relational mapping-002设置JPA的EntityManagerFactory(<persistence-unit>、<jee:jndi-lookup>)
- JPA--Caused by: javax.persistence.PersistenceException: [PersistenceUnit: mysqlJPA] Unable to configure EntityManagerFactory
- JPA EntityManagerFactory
- jpa--5.api(Persistence,EntityManagerFactory)
- JPA EntityManagerFactory Vs Hibernate’s SessionFactory
- Spring三种方法创建JPA EntityManagerFactory的方法
- jpa动态创建EntityManagerFactory 态设置数据库连接 EntityManager;