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>的子节点,是负责写 ...
随机推荐
- 将【恢复和重新安装Windows】的介质指定到硬盘
步骤: 1. 双击Win8.1/Win10安装镜像,将它载入到虚拟光驱(例子被载入到i:盘) 2. 将Win8.1/Win10安装镜像中sources\install.wim文件复制到一个非系统盘里. ...
- C++中string的常见用法
在ACM中主要用到string的这几个功能:赋值,添加,删除,替换,查找,比较,反向排序. 1.赋值 直接来就行: string ss; ss="aaa"; 或者 string s ...
- 团队队列(列和map结合的经典运用)
Queues and Priority Queues are data structures which are known to most computer scientists. The Team ...
- bzoj1249: SGU277 HERO 动态凸包
动态维护凸包面积. //Achen #include<bits/stdc++.h> #define For(i,a,b) for(int i=(a);i<=(b);i++) #def ...
- Vue 中的 computed 和 methods
Vue 中的 computed 和 methods 使用 computed 性能会更好. 如果你不希望缓存,可以使用 methods 属性.
- Java程序员如何在竞争中保持优势
Java程序员入门容易,进阶很难,想要在竞争中保持优势,脚踏实地的同时也要仰望星空规划自己的未来.时间在流逝,年龄在增加,你期望的薪水也在不断增多,你总得让自己能力持续增加以配得上想要的收入吧. 从初 ...
- VisualPage重定向
开发文档链接:https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_quick_start_override ...
- kindeditro.js乱码问题
kindeditor.js是用于显示新建邮件时的菜单栏的一个插件,比较好用,但是在引入的时候会出现乱码问题,主要有几个方面原因. 1.编码方式不对,要设置成utf8. <script chars ...
- Poj 2488 A Knight's Journey(搜索)
Background The knight is getting bored of seeing the same black and white squares again and again an ...
- Linux驱动 - select函数介绍
一.select 函数介绍 select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: #include & ...