zoukankan      html  css  js  c++  java
  • JPA级联查询----导航查询

     导航查询 

        查询一个对象时的同时,通过此对象查询它的关联对象

       案例 客户和联系人 

    
    
            //从客户对象到联系人导航查询他所属的客户
    //默认使用延迟加载
        @Test
        @Transactional //解决代码中no Session
        public void testQuery(){
           Customer customer=customerDao.getOne(1L);
    
            Set<LinkMan> linkMans=customer.getLinkMans();
            for (LinkMan linkMan : linkMans) {
                System.out.println(linkMan);
            }

     存在问题  导航查询时 默认使用延迟加载的形式查询,调用get方法时不会立即发送查询,而是在使用关联对象的时候才会查询----延迟加载

      解决办法  修改配置,将延迟加载改为立即加载   

      

     上面是一对多的形式 

     接下来 多对一的形式

     //从联系人对象导航查询他所属的客户
        //默认使用立即加载
        @Test
        @Transactional //解决代码中no Session
        public void testQuery02(){
            LinkMan linkMan=linkManDao.findOne(1l);
    
            Customer customer=linkMan.getCustomer();
    
            System.out.println(customer);
        }

    修改加载方式  

    总结 

      从一方查询多方

         默认 延迟加载(一般都是)

    从多方查询一方

      默认 立即加载

      一到多  意味着 多方可能有很多数据,如果立即加载又用不上 浪费 大概是这个意思

  • 相关阅读:
    使用iptables禁止外网访问tomcat的8080端口
    解决ie浏览器下载apk或ipa变为zip
    'ᄈ'
    centos上安装grafana
    vertica单节点故障恢复 Startup Failed, ASR Required
    vertica审计日志
    centos安装nginx1.17.9
    centos上nginx转发tcp请求
    centos 安装mysql8.0.16
    centos下导出docx为html
  • 原文地址:https://www.cnblogs.com/yangbom/p/14033250.html
Copyright © 2011-2022 走看看