首页 > 其他 > 详细

27 延迟加载和即时加载

时间:2020-01-01 09:52:25      阅读:96      评论:0      收藏:0      [点我收藏+]

问题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 延迟加载和即时加载

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!