【Hibernate学习】 —— 抓取策略(注解方式)
2017-05-28 13:16
239 查看
当应用程序须要在关联关系间进行导航的时候。hibernate怎样获取关联对象的策略。
抓取策略的方式:
FetchType.LAZY:懒载入。载入一个实体时。定义懒载入的属性不会立即从数据库中载入。
FetchType.EAGER:急载入,载入一个实体时,定义急载入的属性会马上从数据库中载入。
在项目中的体现。我这里有两个实体。一个放基础数据的实体。还有一个是放操作记录的实体。
这两个实体的关系是一对一关系,因此要把基础数据中的主键放在操作记录中作为外键。查询的时候查询操作记录表顺便把基础表相关信息带出来:
这里用的是注解的方式:
抓取策略的体现:fetch=FetchType.EAGER,这里我们查询后要立刻显示出来,故选用了急载入。
这里遇到了一个问题:
解决方式:注解放在get方法上面(注:原来把注解放在了方法上)
是由于get方法是外部获取类内部属性的方法。所以凡是须要获取属性或者对象的都是在get方法上声明的。
比如Spring的依赖注入,也是从get方法去注入。
如今用了抓取策略的优点是。我们仅仅须要把这个策略加上,那么对应的实体就会关联上。我们就不须要去写对应的HQL语句去关联或者是新建一个实体把这两个实体关联起来。
抓取策略的方式:
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学习42 -- 抓取策略2 -- 查询抓取
- SS6.1_Hibernate_Hibernate_IdStrategyAnnotation 主键生成策略native Annotation注解的配置方式
- Hibernate注解方式学习案例
- Hibernate学习手记(8) - 抓取策略
- 【极客营】Hibernate JPA注解开发-抓取策略
- Hibernate学习43 -- 抓取策略3 -- 子查询抓取
- Hibernate学习---第十一节:Hibernate之数据抓取策略&批量抓取
- Hibernate学习44 -- 抓取策略4 -- 批量抓取(Batch fetching)
- 使用注解风格学习Hibernate和JPA的主键生成策略
- 框架 day33 Hibernate,组件映射,继承映射,抓取(检索)策略-优化,检索方式总结
- 【Java EE 学习 48】【Hibernate学习第五天】【抓取策略】【二级缓存】【HQL】
- Hibernate学习41 -- 抓取策略1 -- 连接抓取
- Hibernate学习之抓取策略与懒(延迟)加载
- JAVAWEB开发之Hibernate详解(三)——Hibernate的检索方式、抓取策略以及利用二级缓存进行优化、解决数据库事务并发问题
- 使用注解风格学习Hibernate和JPA的主键生成策略
- Hibernate学习4 二级缓存强化和事务管理 注解方式实现
- Hibernate检索策略学习之--预先抓取
- 我的hibernate学习之旅(3)~通过给类文件添加注解的方式来配置映射
- JAVAWEB开发之Hibernate详解(三)——Hibernate的检索方式、抓取策略以及利用二级缓存进行优化、解决数据库事务并发问题