Hibernate抓取策略

来源:互联网 发布:上海大学乐乎网络硬盘 编辑:程序博客网 时间:2024/05/22 00:39

Hibernate抓取策略(单端代理的抓取策略):
   保持默认 也就是如下:
    <many-to-one name="clazz" cascade="save-update" fetch="select" />
    fetch="select" 就是另外发送一条select语句抓取当前对象关联实体或者集合
   设置fetch="join"
     <many-to-one name="clazz" cascade="save-update" fetch="join"/>
     Hibernate会通过select语句使用外连接加载器来关联实体或集合 此时lazy会失效

Hibernate抓取策略(集合代理的抓取策略):
   保持默认(fetch="select") 也就是如下:
          <set name="students" inverse="true">
      <key column="clazz"/>
      <one-to-many class="com.june.hibernate.Student"/>
  </set>
  (1)fetch="select" 会另外发出一条语句查询集合 
  (2)设置fetch="join" 采用外练级 集合的lazy失效
  (3)这只fetch="subselect" 另外发出一条select  语句抓取前面查询到的所有的实体对象的关联集合 fetch只对HQL查询产生影响 其他的则不会

batch-size
    batch-size属性可以批量加载实例类
     batch-size也可以在集合上应用 这样可以在一定程度上提高程序的执行效率

这是对数据库设置的抓取策略:
    <property name="hibernate.jdbc.batch_size">30</property>
    <property name="hibernate.jdbc.fetch_size">50</property>

原创粉丝点击