以下是本人的一些理解 如有误的地方欢迎指出 谢谢!

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配置详解的更多相关文章

  1. Spring Data JPA @EnableJpaRepositories配置详解

    @EnableJpaRepositories注解用于Srping JPA的代码配置,用于取代xml形式的配置文件,@EnableJpaRepositories支持的配置形式丰富多用,本篇文章详细讲解. ...

  2. Hibernate4之JPA规范配置详解

    @Table Table用来定义entity主表的name,catalog,schema等属性. 属性说明: name:表名 catalog:对应关系数据库中的catalog schema:对应关系数 ...

  3. 【Spring】——声明式事务配置详解

    项目中用到了spring的事务: @Transactional(rollbackFor = Exception.class, transactionManager = "zebraTrans ...

  4. Log4j配置详解(转)

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  5. logback 常用配置详解<appender>

    logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...

  6. [转]阿里巴巴数据库连接池 druid配置详解

    一.背景 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色 ...

  7. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  8. logback配置详解3<filter>

    logback 常用配置详解(三) <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一.返回DENY ...

  9. logback配置详解2<appender>

    logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写 ...

随机推荐

  1. python中正则表达式的一些问题

    今天听到一句话,觉得很在理——"当你遇到一个问题,想到用正则表达式解决时,就变成了两个问题" 这也从侧面说明了正则表达式比较难理解.下面我将用通俗易懂的方式总结一下,最近遇到的一些 ...

  2. oracle管理优化必备语句以及oracle SQL语句性能调整

    本文转自http://www.dataguru.cn/article-3302-1.html oracle数据库管理优化必备语句: 1. SELECT T.START_TIME,T.USED_UBLK ...

  3. eclipse提交Git时忽略文件

    为了避免每次使用都有百度查找,自己保存一份,方便使用. 实现方式: Eclipse切换到Navigator视图,找到.gitignore文件(如果是maven项目,一般找作为modules的项目的.g ...

  4. 面试题13:在O(1)时间删除链表结点

    题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点. 链表结点与函数的定义如下: struct ListNode { int val; ListNode* next; }; ...

  5. MySQL 添加、查看字段注释

    语法: 创建表时的COMMENT内容,要查看这些内容,使用命令: show full fields from '表名称'; 查看tb_usr表字段注释: 创建新表的脚本中, 可在字段定义脚本中添加co ...

  6. 「BZOJ2510」弱题(矩阵乘法,降维)

    有M个球,一开始每个球均有一个初始标号,标号范围为1-N且为整数,标号为i的球有ai个,并保证Σai = M. 每次操作等概率取出一个球(即取出每个球的概率均为1/M),若这个球标号为k(k < ...

  7. sort--Linux下文本处理五大神器之三

    转自:http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参 ...

  8. AtCoder Petrozavodsk Contest 001 B - Two Arrays

    Time limit : 2sec / Memory limit : 256MB Score : 300 points Problem Statement You are given two inte ...

  9. notepad++怎么显示项目的目录树?

    转:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1013/1762.html

  10. 利用sort对数组快速排序

    // sort内部使用快速排序,每次比较两个元素大小的时候如果没有参数,则直接判断字母表,如果有参数,则把正在比较的两个参数传入自定义方法并调用(正在比较的两个数会传给自定义方法的v1.v2),如果返 ...