文档章节

JPA和Hibernate抓取策略的差异

猪刚烈
 猪刚烈
发布于 2014/10/12 11:48
字数 343
阅读 40
收藏 0

Hibernate和JPA 的抓取策略是有差异的 。这一点在使用JPA注解时会有所体现。有时候我们需要添加一些hibernate独有的注解才能实现比较好的抓取。下面简单提几点。

 

     所谓“抓取策略”,总要涉及两个问:何时抓取以及如果抓取。这两点在Hibernate提供的注解上体现的非常明显。Hibernate提供两套注解分别用来描述“何时抓取”和“如何抓取”。这样看起来非常条理和清晰。但是JPA显然没有这么做。它只提供了fetch=FeatchType.LAZY or FetchType.EAGER.但是我们必须明白这两种选项对应的实际抓取策略是什么。

对于fetch=FeatchType.LAZY:何时抓取:lazy,如何抓取:select

对于fetch=FeatchType.EAGER:何时抓取:eager,如何抓取:join

     这就是JPA对抓取策略的描述。因为它对于lazy和eager只各提供一种抓取方法,因此它就不需要再指定“如何抓取”了。但是hibernate还提供一种subselect抓取,它是配合lazy=true的抓取方法。

如果想要使用subselect抓取,你可以用hibernate的FetchMode.SUBSELECT注解覆写JPA的配制,但是lazy=true这一点,你还是需要使用fetch=FetchType.LAZY来配制的,你只是替换了它的select抓取方法。

本文转载自:http://blog.csdn.net/bluishglc/article/details/5575947

共有 人打赏支持
上一篇: NOTE:Spring
下一篇: NOTE:Struts2
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
基于Hibernate的JPA2.0快速构建

前言 尽管现在开源的框架已经非常优秀,但是缺乏统一的标准有违软件开源的初衷,因此Sun公司的JCP组织发布了Java EE的JPA标准,并统一ORM规则、JPQL查询语言、子查询、高级查询和批量处理等操...

Barudisshu
2014/09/17
0
0
JPA和Hibernate到底是什么关系???

(文章借用了其他几篇博客中的内容,因为是初学者,许多概念性的关系自己不能完全理解,就将大神的搬了过来,如有不当,可留言,本人自会妥善处理,谢谢) 在学习框架的过程中,发现学的东西...

moson
08/17
0
0
ejb部署到jboss7

在win7下:有jboss7 eclipse 写了一个ejb项目 部署到jboss7上,再将ejb项目打包成jar文件。 写一个web项目调用ejb进行数据的增删改查 在ejb里+MATE-INF --persistence.xml进行配置 为何我重新...

July4th
2013/05/13
1K
2
SSH与SSH2这种框架组合的历史原由

早在2001年时当时的J2EE推崇的是EJB,EJB被称为J2EE的核心,当时要学J2EE就是Servlet+EJB,在EJB里其实早已经有了AOP与实体映射这些概念了。 EJB有三种形态的BEAN,SessionBean, Entity Bea...

天行健J
2012/11/20
0
0
理解JPA注解@GeneratedValue

一、JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是JPA的标准用法,...

一生只为虞美人
07/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
4
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
8
0
EOS错误代码及中文释义

本文集汇总了EOS区块链常见错误代码及其含义,完整错误代码集请查看 EOS错误代码集 - 汇智网 EOS错误代码列表如下, <table class="table table-striped"> <thead> <tr><th>错误代码</th><t......

汇智网教程
昨天
4
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
4
0
kiss原则

KISS 原则是用户体验的高层境界,简单地理解这句话,就是要把一个产品做得连白痴都会用,因而也被称为“懒人原则”。换句话说来,”简单就是美“。KISS 原则源于 David Mamet(大卫马梅)的电...

NB-One
昨天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部