JPA entityManagerFactory配置详解
以下是本人的一些理解 如有误的地方欢迎指出 谢谢!
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 entityManagerFactory配置详解的更多相关文章
- Spring Data JPA @EnableJpaRepositories配置详解
@EnableJpaRepositories注解用于Srping JPA的代码配置,用于取代xml形式的配置文件,@EnableJpaRepositories支持的配置形式丰富多用,本篇文章详细讲解. ...
- Hibernate4之JPA规范配置详解
@Table Table用来定义entity主表的name,catalog,schema等属性. 属性说明: name:表名 catalog:对应关系数据库中的catalog schema:对应关系数 ...
- 【Spring】——声明式事务配置详解
项目中用到了spring的事务: @Transactional(rollbackFor = Exception.class, transactionManager = "zebraTrans ...
- Log4j配置详解(转)
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- logback 常用配置详解<appender>
logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...
- [转]阿里巴巴数据库连接池 druid配置详解
一.背景 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色 ...
- libCURL开源库在VS2010环境下编译安装,配置详解
libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...
- logback配置详解3<filter>
logback 常用配置详解(三) <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一.返回DENY ...
- logback配置详解2<appender>
logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写 ...
随机推荐
- 交换排序—快速排序(Quick Sort)原理以及Java实现
交换排序—快速排序(Quick Sort) 基本思想: 1)选择一个基准元素,通常选择第一个元素或者最后一个元素, 2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素 ...
- Amazon EMR(Elastic MapReduce):亚马逊Hadoop托管服务运行架构&Hadoop云服务之战:微软vs.亚马逊
http://s3tools.org/s3cmd Amazon Elastic MapReduce (Amazon EMR)简介 Amazon Elastic MapReduce (Amazon EM ...
- app-前端性能测试
前端性能测试,主要分为七个部分: 启动时间.CPU.流量.电量.内存.FPS(每秒钟的帧数).过度渲染 主要测试的内容: 启动时间:主要测试app在启动过程中的耗时情况 CPU:主要测试app在使用过 ...
- 真机环境spotlight光源丢失
maya做好的模型生成的fbx,导入到unity之后,pc运行正常,到了ios真机上发现光线丢失,场景内物体都是暗暗的,查出来原因是spot光源丢失了,选中spot光源,在其Render Mode里, ...
- 排序算法 java实现2
继续排序算法 4.冒泡排序 从第一个开始,跟后面一个数比较,如果比后面大就交换位置,这样没完成一轮,就可以把最大的选出来 public static <T extends Comparable& ...
- 《zero to one》读后感
五一放假,赶上下雨,天气很凉爽,这种天气很舒服,不冷不热,听着滴答的雨声,看看书其实也不错. 约了两个同学吃了顿饭,然后决定窝在实验室了,最近看了彼得.蒂尔的<zero to one>,确 ...
- 电话圈(floyd)
题意: 如果两个人相互打电话,则说他们在同一个电话圈里.例如,a打给b,b打给c,c打给d,d打给a,则这4个人在同一个圈里:如果e打给f但f不打给e,则不能推出e和f在同一个电话圈里,输出所有电话圈 ...
- Excel分类汇总
版本:2016,数据来源:我要自学网,曾贤志老师 1.首先,要进行分类,在进行汇总, 如对日期进行汇总的话: 如果对品名进行汇总的话 2.光标要定在数据源,在选择分类字段(包含项目比如品名 ...
- Spring Boot Starter 速查
Spring Boot应用启动器基本的一共有40多种,常用的如下 1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置.日志和YAML. 2)spring ...
- Java-API-Package:javax.annotation
ylbtech-Java-API-Package:javax.annotation 1.返回顶部 1. Package javax.annotation Enum Summary Resource.A ...