首页 > 代码库 > Hibernate总结(三)
Hibernate总结(三)
在Hibernate(二)中,简单总结了表与表之间的级联操作,但是并没有总结查询操作,这一篇将总结Hibernate查询所实现的加载策略。
加载策略:
立刻加载:马上去数据库中查询
延迟加载:当使用数据时去数据库查询
加载的使用:
类级别的加载:某个Class的加载方式
1 get(): 立刻加载
2 load():是否懒加载和配置属性lazy有关。<class name="Course" table="t_course" lazy="true">,默认,lazy为true,为懒加载。若改为false,load()方法
将和get()方法一样立刻加载
关联级别的加载:当存在关系时,加载其中一方数据,该如何加载另一方数据?设计到的属性是lazy与fetch属性
1-多加载策略:
默认为: lazy="true",fetch="select"
lazy="true" | lazy="false" | lazy="extra" | |
fetch="select" | 实现懒加载,两条SQl语句,普通select语句 | 立刻加载,普通select语句 | |
fetch="join" | 因为是1条语句,所以立刻加载,连接语句 | 因为是1条语句,所以立刻加载,连接语句 | |
fetch="subselect" | 懒加载,子查询语句 | 立刻加载,字查询语句 |
多-1加载策略:
默认为: lazy="false"(明明是false,但实现懒加载,很奇怪),fetch="select"
lazy="false" | lazy="proxy" | lazy="no-proxy" | |
fetch="select" | 延迟加载,普通select语句 |
若关联对象的加载策略为true,则懒加载 若关联对象的加载策略为false,则立刻加载 |
|
fetch="join" | 立刻加载,连接语句 | 立刻加载,连接语句 |
Hibernate总结(三)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。