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);
        }

    修改加载方式  

    总结 

      从一方查询多方

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

    从多方查询一方

      默认 立即加载

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

  • 相关阅读:
    各版本mysql乱码的问题解决
    Centos+apache2.4.2+mysql5.5+php5.3.10+memcache+sphinx配置全程
    Mysql 优化
    Mysql 表优化
    Mysql 索引优化
    python整合连续数字的练习,包含itertoolsgroupby用法
    MySQL INTO OUTFILE/INFILE导出导入数据
    python lambda使用if
    mysql小知识
    Python利用urllib2抓取网页返回乱码的问题
  • 原文地址:https://www.cnblogs.com/yangbom/p/14033250.html
Copyright © 2011-2022 走看看