`
gyl868
  • 浏览: 167423 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

fetch lazy (一)

阅读更多


经过测试发现Hibernate annotation中@ManyToOne,@OneToMany,@OneToOne中lazy的默认值是不同的



@OneToMany 默认Lazy为true


@ManyToOne,@OneToOne 默认lazy为false



在设置@ManyToOne的时候我们一般都会设置Lazy=true



一般不会在@ManyToOne,@OneToOne考虑这个问题



但实际hibernate进行load是时候是把一端也load出来的



fetch 和 lazy 主要是用来级联查询的,   而 cascade 和 inverse 主要是用来级联插入和修改的              fetch参数指定了关联对象抓取的方式是select查询还是join查询,select方式时先查询返回要查询的主体对象(列表),再根据关联外键 id,每一个对象发一个select查询,获取关联的对象,形成n+1次查 询;而join方式,主体对象和关联对象用一句外键关联的sql同时查询出来,不会形成多次查询。
如果你的关联对象是延迟加载的,它当然不会去查询关联对象。另外,在hql查询中配置文件中设置的join方式是不起作用的(而在所有其他查询方式如get、criteria或再关联获取等等都是有效的),会使用 select方式,除非你在hql中指定join fetch某个关联对象。fetch策略用于定义 get/load一个对象时,如何获取非lazy的对象/集合。 这些参数在Query中无效。




分享到:
评论

相关推荐

    SSH笔记-检索策略(lazy、fetch、batch-size)

    hibernate的类级别检索策略和检索策略的lazy、fetch、batch-size属性使用

    hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法

    主要介绍了hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法,需要的朋友可以参考下

    hibernate

    Hibernate fetch lazy cascade inverse 关键字

    nuxt-dev-to-clone:使用Nuxt.js和新的`fetch`钩子构建DEV.TO克隆

    alive和activated钩子在已经访问过的页面上有效地缓存API请求使用this.$fetch()重用fetch钩子this.$fetch() 设置fetchOnServer值来控制何时需要在服务器端呈现数据找到一种方法来处理fetch挂钩中的错误。入门# clone...

    JPA例子(里面有一对一,一对多的例子)

    @ManyToOne(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY) @JoinColumn(name = "personid", unique = false, nullable = true, insertable = true, updatable = true) public Person getPerson() { ...

    hibernate总结

    <many-to-one name="dept" class="org.wllt.www.po.Dept" fetch="select" cascade ="none" lazy ="proxy"> </property> Hibernate映射一对一(通过主键实现一对一的关系) //主PO对象...

    lazy-loading-react:使用React JS延迟加载图像的示例

    export const useInfiniteScroll = ( { element , fetch } ) => { const loader = useRef ( fetch ) ; const observer = useRef ( new IntersectionObserver ( ( entries ) => { const first = entries [ 0 ] ; if ...

    英语资料,很有用的哦

    <many-to-one name="systemSpecialtyCode" class="com.hibernate.model.SystemSpecialtyCode" fetch="select" lazy="false"> ...

    Hibernate3.2学习笔记

    Hibernate环境搭建 Hibernate主要接口 Hibernate主要映射 Hibernate的lazy、fetch、cascade等策略 Hibernate性能优化

    Hibernate_Annotation关联映射

    @ManyToOne(fetch = FetchType.LAZY) @JoinTable(name="Test_Tree_Forest", joinColumns = @JoinColumn(name="tree_id"), inverseJoinColumns = @JoinColumn(name="forest_id") ) public ForestType ...

    惰性数组:JavaScript惰性数组,有点像Clojure的seq

    检查测试和源( lazy-array.js )JSDoc以获得更多信息,这是一个简单的示例。 var larr = require ( 'lazy-array' ) ; var plainArray = [ 'foo' , 'bar' , 'baz' ] ; /** * Creates a lazy sequence of all ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch属性为“join”)  16.4.2 延迟检索(lazy属性为默认值“proxy”)  16.4.3 无代理延迟检索(lazy属性为“no-proxy”)  16.4.4 立即检索...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch属性为“join”)  16.4.2 延迟检索(lazy属性为默认值“proxy”)  16.4.3 无代理延迟检索(lazy属性为“no-proxy”)  16.4.4 立即检索...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch属性为“join”)  16.4.2 延迟检索(lazy属性为默认值“proxy”)  16.4.3 无代理延迟检索(lazy属性为“no-proxy”)  16.4.4 立即检索...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch属性为“join”)  16.4.2 延迟检索(lazy属性为默认值“proxy”)  16.4.3 无代理延迟检索(lazy属性为“no-proxy”)  16.4.4 立即检索...

    hibernate 框架详解

    目录 前言 1.... 2.... 1. 在Tomcat中快速上手 ... 1.1.... 1.2. 第一个持久化类 1.3.... 1.4.... 1.5.... 调整抓取策略(Tuning fetch strategies) 20.1.3. 单端关联代理(Single-ended association proxies) ...

    hibernate3.04中文文档.chm

    20.1.2. 调整抓取策略(Tuning fetch strategies) 20.1.3. 单端关联代理(Single-ended association proxies) 20.1.4. 实例化集合和代理(Initializing collections and proxies) 20.1.5. 使用批量抓取...

    Hibernate教程

    20.1.2. 调整抓取策略(Tuning fetch strategies) 20.1.3. 单端关联代理(Single-ended association proxies) 20.1.4. 实例化集合和代理(Initializing collections and proxies) 20.1.5. 使用批量抓取(Using...

    java面试题

    答:不一定,如果在配置中你也使用了fetch属性的话此时lazy就会失效。 Hibernate数据库标识与主键之间的认识? 答:标识是为了方便和简介映射文件,主键是为了让数据不会重复。 为什么每次请求都要创建一个Action...

Global site tag (gtag.js) - Google Analytics