【Hibernate学习】 —— 抓取策略(注解方式)
当应用程序须要在关联关系间进行导航的时候。hibernate怎样获取关联对象的策略。
抓取策略的方式:
FetchType.LAZY:懒载入。载入一个实体时。定义懒载入的属性不会立即从数据库中载入。
FetchType.EAGER:急载入,载入一个实体时,定义急载入的属性会马上从数据库中载入。
在项目中的体现。我这里有两个实体。一个放基础数据的实体。还有一个是放操作记录的实体。
这两个实体的关系是一对一关系,因此要把基础数据中的主键放在操作记录中作为外键。查询的时候查询操作记录表顺便把基础表相关信息带出来:
这里用的是注解的方式:
private Company company;
@OneToOne(fetch=FetchType.EAGER)
@JoinColumn(name="company_id")
publicCompany getCompany() {
returncompany;
}
publicvoid setCompany(Company company) {
this.company= company;
}
抓取策略的体现:fetch=FetchType.EAGER,这里我们查询后要立刻显示出来,故选用了急载入。
这里遇到了一个问题:
Could not determinetype for: com.tgb.xyb.entity.Company, at table: OperateRecord, for columns:[org.hibernate.mapping.Column(company)]
解决方式:注解放在get方法上面(注:原来把注解放在了方法上)
是由于get方法是外部获取类内部属性的方法。所以凡是须要获取属性或者对象的都是在get方法上声明的。
比如Spring的依赖注入,也是从get方法去注入。
如今用了抓取策略的优点是。我们仅仅须要把这个策略加上,那么对应的实体就会关联上。我们就不须要去写对应的HQL语句去关联或者是新建一个实体把这两个实体关联起来。
【Hibernate学习】 —— 抓取策略(注解方式)的更多相关文章
- Hibernate的抓取策略(优化)
延迟加载的概述 什么是延迟加载 延迟加载:lazy(懒加载).执行到该行代码的时候,不会发送语句去进行查询,在真正使用这个对象的属性的时候才会发送SQL语句进行查询. 延迟加载的分类 l 类级别的延 ...
- 八 Hibernate延迟加载&抓取策略(优化)
面试:Hibernate效率很低,如何优化? 缓存怎么弄的,语句怎么优化? 聊聊一级缓存,聊聊抓取策略和延迟加载,聊聊批量抓取 延迟加载: 一般不单独使用,和延迟加载一起使用 延迟加载:lazy(懒加 ...
- Hibernate之抓取策略
时间:2017-1-23 19:08 --区分延迟和立即检索1.立即检索 当执行某行代码时,会马上发出SQL语句进行查询. 例如:get()2.延迟检索 当执行某行代码时,不会马上发 ...
- Hibernate的抓取策略
立即检索:当执行某行代码的时候,马上发出SQL语句进行查询(get())延迟检索:当执行某行代码的时候,不会马上发出SQL语句进行查询.当真正使用这个对象的时候才会发送SQL语句(load()) 类级 ...
- 【Hibernate】抓取策略
一.区分延迟和立即检索 二.类级别检索和关联级别检索 一.区分延迟和立即检索 立即检索: 当执行某行代码的时候,马上发出SQL语句进行查询. get() 延迟检索: 当执行某行代码的时候,不会马上发出 ...
- 【Hibernate 8】Hibernate的调优方法:抓取策略
在上一篇博客中,介绍了Hibernate的缓存机制.合理的配置缓存,可以极大程度上优化Hibernate的性能.这篇博客,介绍另外一个调优方式:抓取策略. 一.什么是抓取策略 抓取策略(fetchin ...
- Hibernate框架笔记04HQL_QBC查询详解_抓取策略优化机制
目录 1. Hibernate的查询方式 1.1 方式一:OID查询 1.2 方式二:对象导航查询 1.3 方式三:HQL方式 1.4 方式四:QBC查询 1.5 方式五:SQL查询 2. 环境搭建 ...
- Hibernate(十四)抓取策略
抓取策略: 抓取策略是当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候,Hibernate如何获取关联对象的策略.Hibernate的抓取策略是Hibernate提升性能的一 ...
- Hibernate 抓取策略
抓取策略: 为了改变SQL语句执行的方式 当应用程序需要在Hibernate实体对象的关联关系间进行导航的时候,Hibernate如何获取关联对象的策略 抓取策略可以在O/R映射的元数据中声明,也可以 ...
随机推荐
- 安装Nginx的各种报错的解决
如题,本人环境Ubuntu14.0虚拟机,安装一个nginx服务器来运行我的fastDfs文件管理的.但是安装出现了各种问题: sudo ./configure --prefix=/usr/local ...
- IIC 原理讲解
IIC具体是什么这里我就不细说了,只收集一些关于IIC的原理. IIC总线优点是节约总线数,稳定,快速, 是目前芯片制造上非常 流行的一种总线,大多数单片机已经片内集成了IIC总线接口,无 需用户自己 ...
- MyBatis学习总结(1)——MyBatis快速入门
一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...
- HDU 4339 Contest 4
树状数组,主要是抓住要求连续1的个数.这样,初始时,相同的加1,不同的加0. 查询时,用二分搜索右边界.就是比较当前mid-l+1的值与他们之间1的个数(这可以通过树状数组求区间和得出),记录右边界即 ...
- HDU 2512
水题 #include <iostream> #include <cstdio> #include <algorithm> #define LL __int64 # ...
- HDU 4828
其实..这题是<组合数学>的习题中的一道......当初不会..... 想到一个证明: 填入2n个数,把填在上方的数的位置填上+1,下方的填上-1.这样,在序列1....2n的位置,任意前 ...
- Android LaunchMode案例篇
首先感谢小伙伴的关注.然后祝愿广大的情侣们节日快乐! 在开发中有时会遇到这种场景,用户点击注冊.第一步,第二步,完毕注冊跳转到登录界面,不须要用户一步一步的返回到登录界面.这是怎么实现的呢? 案例:有 ...
- javaScript中的事件对象event
事件对象event,每当一个事件被触发的时候,就会随之产恒一个事件对象event,该对象中主要包括了关于该事件的基本属性,事件类型type(click.dbclick等值).目标元素target(我的 ...
- Install Rails on ubuntu 12.04 LTS
There are basically there ways to install Rails development environment on your ubuntu linux system, ...
- HD-ACM算法专攻系列(12)——Integer Inquiry
问题描述: 源码: import java.math.BigInteger; import java.util.*; public class Main { //主函数 public static v ...