文档章节

JPA和Hibernate抓取策略的差异

猪刚烈
 猪刚烈
发布于 2014/10/12 11:48
字数 343
阅读 52
收藏 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抓取方法。

上一篇: NOTE:Spring
下一篇: NOTE:Struts2
猪刚烈

猪刚烈

粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
加载中
请先登录后再评论。
mvc框架--Razor

Razor 是一个轻巧而优雅的servlet mvc框架 # 又一个轮子? no,写就她是为了证实我个人的某些想法,并在这个过程中练练手,这两种冲动碰撞在一起,自然而然地产生了Razor # Razor的现在和未来...

dtubest
2013/01/25
2.9K
0
网页抓取工具 --pyrailgun

这是一个非常简单易用的抓取工具 怎么使用? 首先你需要创建一个对应站点的规则文件 比如test.json { } 然后在代码里面把它作为一个任务加入到railgun from railgun import RailGun railgun =...

baizhongwei
2013/02/28
7.8K
0
自定义表单系统--FormDesign

是基于 FLEX 开发的一款B/S的自定义表单系统 整个过程如下: 1、通过FormDesign自定义表单画出相应的表单; 2、将生成好的XML放到程序中,并通过后台自动编译成JSP; 注:FormDesing只是自定...

polliwog
2013/03/29
1.6W
1
CSS 选择器--Q.js

1, 和Sizzle的兼容 Q(expr, context, result, seed) Q.matches 支持Sizzle特别的setFilter伪类如:even,:first,:last,:lt... 支持复杂的:not和:has选择器(和sizzle一样) 2, 结果的正确性 Si...

hackwaly
2012/10/23
4.6K
0
JBoss 事务服务--Narayana

JBoss 事务服务(JBossTS 也叫 Narayana )保护企业数据破坏,保证数据完整、准确。为基于Java的应用程序(包括那些写给JEE和EJB框架)从而消除风险和相关成本非常耗时的和解失败后。...

匿名
2012/11/04
1.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在Android中以像素为单位获取屏幕尺寸 - How to get screen dimensions as pixels in Android

问题: I created some custom elements, and I want to programmatically place them to the upper right corner ( n pixels from the top edge and m pixels from the right edge). 我创建......

javail
49分钟前
7
0
如何在不安装Microsoft Office的情况下用C#创建Excel(.XLS和.XLSX)文件?

问题: 如何在不使用运行代码的计算机上安装Excel的情况下使用C#创建Excel电子表格? 解决方案: 参考一: https://stackoom.com/question/dHZ/如何在不安装Microsoft-Office的情况下用C-创...

技术盛宴
今天
7
0
如何使用pip升级所有Python软件包? - How to upgrade all Python packages with pip?

问题: Is it possible to upgrade all Python packages at one time with pip ? 是否可以通过pip一次升级所有Python软件包? Note : that there is a feature request for this on the off......

法国红酒甜
今天
9
0
活体检测+合成图鉴别面前,人脸“照片活化”黑产攻击一秒被擒

本文作者:y****n 如今,随着人脸技术的日趋成熟,新兴娱乐文化得到了极大的推动,尤其是随着 DeepFake、FaceSwap 等人脸编辑及生成技术的发展,虚拟主播、人脸合成带给人们全新的体验,但同...

百度开发者中心
昨天
12
0
如何在SQL Server中将多行文本合并为单个文本字符串?

问题: Consider a database table holding names, with three rows: 考虑一个包含名称的数据库表,该表具有三行: PeterPaulMary Is there an easy way to turn this into a single str......

富含淀粉
今天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部