码迷,mamicode.com
首页 > 其他好文 > 详细

27 延迟加载和即时加载

时间:2020-01-01 10:07:06      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:style   实体   mapped   span   exp   lock   onetomany   从表   调用   

问题1:我们查询客户时,要不要把联系人查询出来?

分析:如果我们不查的话,在用的时候还要自己写代码,调用方法去查询。如果我们查出来的,不使用时又会白白的浪费了服务器内存。

解决:采用延迟加载的思想。通过配置的方式来设定当我们在需要使用时,发起真正的查询。

/**
     * 在客户对象的@OneToMany注解中添加fetch属性
     *         FetchType.EAGER    :立即加载
     *         FetchType.LAZY    :延迟加载
     */
    @OneToMany(mappedBy="customer",fetch=FetchType.LAZY)
    private Set<LinkMan> linkMans = new HashSet<>(0);

问题2:我们查询联系人时,要不要把客户查询出来?

分析:例如:查询联系人详情时,肯定会看看该联系人的所属客户。如果我们不查的话,在用的时候还要自己写代码,调用方法去查询。如果我们查出来的话,一个对象不会消耗太多的内存。而且多数情况下我们都是要使用的。

解决: 采用立即加载的思想。通过配置的方式来设定,只要查询从表实体,就把主表实体对象同时查出来

/**
     * 在联系人对象的@ManyToOne注解中添加fetch属性
     *         FetchType.EAGER    :立即加载
     *         FetchType.LAZY    :延迟加载
     */
    @ManyToOne(targetEntity=Customer.class,fetch=FetchType.EAGER)
    @JoinColumn(name="cust_id",referencedColumnName="cust_id")
    private Customer customer;

 

 

 

27 延迟加载和即时加载

标签:style   实体   mapped   span   exp   lock   onetomany   从表   调用   

原文地址:https://www.cnblogs.com/zhaochengf/p/12127937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!