当应用程序须要在关联关系间进行导航的时候。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语句去关联或者是新建一个实体把这两个实体关联起来。

最新文章

  1. Activity的四种启动模式
  2. 关于MySql 关键字与字段名冲突 的问题
  3. [Android]对BaseAdapter中ViewHolder编写简化
  4. [Android Pro] StarUML 版本破解
  5. git 打标签并推送tag到托管服务器
  6. Storm命令详解
  7. 关键词:ACM & 大小端 & 面试官
  8. Windows Azure功能更新:SQL Server AlwaysOn和Notification Hub 正式商用
  9. Wikioi 1169 传纸条
  10. MySQL学习系列2--MySQL执行计划分析EXPLAIN
  11. FrameBuffer系列 之 介绍
  12. 201521123068《Java程序设计》第12周学习总结
  13. Hibernate-ORM:02.Hibernate增删改入门案例
  14. leanote 信息栏显示笔记本和笔记类型
  15. Vue 学习笔记 -- inline-template
  16. flanneld,flannel和cni逐步深入
  17. Ado.net之存储过程的使用【三】
  18. .net 操作MongoDB 基础
  19. Spark项目之电商用户行为分析大数据平台之(四)离线数据采集
  20. R链接hive/oracle/mysql

热门文章

  1. Android开发进度03
  2. Hdu 1429 胜利大逃亡(续) (bfs+状态压缩)
  3. Spring的ApplicationContextAware接口的作用
  4. jvm 堆、栈 、方法区概念和联系
  5. ArcEngine 一些实现代码
  6. HDU Train Problem I (STL_栈)
  7. 基于MySQL元数据的Hive的安装和简单測试
  8. ora-01157怎么解决
  9. js捕获页面回车事件
  10. (三)Fegin声明式服务调用