1.概述
Hibernate的话题讲N页也讲不完,这里只顺便记录一些。
SpringSide对Hibernate 三个层次的封装见 SpringSide的Hibernate封装。
1.1 参考资料
- Hibernate 3.2 GA版的官方参考手册最重要的参考资料。
- 满江红的Hibernate 3.2 GA参考手册中文翻译
- 《Java Persitence with Hibernate》Gavin King所著,800多页有点厚。
- Hibernate自带的单元测试也是很好的参考资料。
2.映射
Hibernate参考手册最末的几个例子演示了集中最经典的映射模式。
推荐Hibernate Annotation 形式的映射,详见Hibernate Annotation。
2.1 继承映射
参考Product表的映射,Book类继承于Product类,通过一个列来区分,也可以编写某种表达式来区分。
同时参考Hibernate参考手册里 Author/Work 的Example
2.2 父子表映射
参考Orders表的映射, Order-OrderItem-Product的经典三角关系 及Hibernate参考手册Parent/Child Example ,Customer/Order/Product Example。
父子表的这种精要型的映射,通过自动生成一般是生成不出来的。
3.二级缓存
hibernate的session提供了一级缓存,在同一个session中对同一个id的对象load两次,并不会发送两条sql给数据库。但是session关闭的时候,一级缓存就失效了。
二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等,需要使用缓存实现方案。
详细请看: hibernate二级缓存攻略
3.1 基本设置
1. 如果需要特别设置ehcache的属性,把一个ehcache.xml 定义文件拷贝到class-path.
2. jdbc.properties加上
hibernate.cache.use_query_cache=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
3. applicationContext.xml的 <property name="hibernateProperties">下加上
<prop key="hibernate.cache.use_query_cache">$ {hibernate.cache.use_query_cache}</prop>
<prop key="hibernate.cache.provider_class">$ {hibernate.cache.provider_class}</prop>
3.2 Entity级二级缓存
Entity二级缓存是把PO放进cache,缓存的key就是ID,value是POJO,不同于查询的缓存。
Entity二级缓存在BookDao.get(3),和book.getCategory()的情况下都能用到,把category这样的小表完全cache到内存挺不错的。
在hbm文件中:
<class name="Product" table="PRODUCT" dynamic-insert="true" dynamic-update="true">
<cache usage="nonstrict-read-write"/>
<id name="id" column="ID">
<generator class="native"/>
</id>
如果你使用的二级缓存实现是ehcache的话,需要配置ehcache.xml ,否则就会使用ehcache默认的配置
<cache name="com.xxx.pojo.Foo" maxElementsInMemory="500" eternal="false" timeToLiveSeconds="7200" timeToIdleSeconds="3600" overflowToDisk="true" />
3.3 查询缓存
上面的二级缓存是针对单个对象的,如果要对查询结果,则是用下面的语句
query.setCacheable(true);query.setCacheRegion("myCacheRegion");
cacheRegion是可选的,可以对使用的缓存进行特殊设置, 在ehcahe.xml里要补上下面的一段。
<cache name="myCacheRegion" maxElementsInMemory="10" eternal="false" timeToIdleSeconds="3600" timeToLiveSeconds="7200" overflowToDisk="true" />
分享到:
相关推荐
串行接口总述,详细描述串口接口,望补充。
CST2008教程翻译--后处理总述,微波仿真软件,很好的入门资料 格式: RAR PDF 其他: *资源分1分,如果评论资源的话,会返还2分,欢迎评论。我这样设置的原因是:希望您下载资源之后,能够评论一下,也好让我知道...
碳中和碳达峰系列研究之总述篇:双碳下的“双新”趋势 本研究报告对中国的碳中和碳达峰行动的发展趋势进行了深入分析和研究。报告认为,整个“双碳”行动将会按“双新”的趋势有序推进,即“新能源”与“新电气化...
20210809-招商银行-新能源行业碳中和碳达峰系列研究之总述篇:双碳下的“双新”趋势.pdf
物流系统规划设计总述.pptx
贸易业务发展战略总述.ppt
SPM-fMRI数据分析总述
2015年校办总述职报告.docx
广播电台总述职报告范文.doc
这是单文件的教程。介绍了LSMW批处理的总述及操作界面说明
人力资源维护与社会保险总述.doc
人力资源维护与社会保险总述.docx
第二章物流系统规划设计总述.pptx
西北政大法学考研校情总述.pdf
《机械原理课程设计总述》是对机械工程领域中一种特定机械设备——托盘式半自动巧克力包装机的设计概述。设计目标是解决中小型企业在巧克力包装过程中存在的投资成本高、劳动强度大、生产效率低、卫生条件差等问题,...
《芳杂环总述》PPT课件详细探讨了芳香性杂环的结构、性质以及理论解释。芳香性杂环是一类重要的有机化合物,它们在化学、生物学和药物设计等领域有着广泛的应用。其中,六原子、六-π-电子的杂环是这类化合物的核心...
《外汇风险管理总述》 外汇风险管理是国际财务管理中不可或缺的一部分,它主要涉及企业因汇率波动带来的潜在财务影响。外汇风险可以分为三个主要类别:会计风险、交易风险和经营风险。 会计风险,又称折算风险,是...
存在问题、整改措施总述(第二幼儿园).docx
13675 新天酒业企业文化建设总述(ppt 36).ppt