码迷,mamicode.com
首页 > 编程语言 > 详细

SpringData JPA多表查询

时间:2020-02-28 22:37:14      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:客户   done   test   查询   spring   style   方法   ash   div   

对象导航查询:查询一个对象的同时,通过此对象查询他的关联对象

/**
     * 对象导航查询:
     *      默认使用的是延迟加载的形式查询
     *          调用get方法并不会立即发送查询,而是在使用关联对象的时候才会查询
     * 将延迟加载改为立即加载需要修改配置
     *      fetch,需要配置到多表映射关系的注解上
     *      
     *      @OneToMany(mappedBy = "customer", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
     *      private Set<LinkMan> linkMans = new HashSet<>(0);
     *
     */
    @Test
    @Transactional // 解决在单元测试中的no session问题(could not initialize proxy - no Session)
    public void testQuery1() {
        // 查询id为1的客户
        Customer c = customerDao.findOne(1L);
        // 对象导航查询此客户下的所有联系人
        Set<LinkMan> linkMans = c.getLinkMans();
        for (LinkMan linkMan : linkMans) {
            System.out.println(linkMan);
        }
    }
/**
     * 从联系人对象导航查询他的所属客户
     *      默认:立即加载
     */
    @Test
    @Transactional
    public void  testQuery2() {
        LinkMan linkMan = linkManDao.findOne(2L);
        //对象导航查询所属的客户
        Customer customer = linkMan.getCustomer();
        System.out.println(customer);
    }

 

SpringData JPA多表查询

标签:客户   done   test   查询   spring   style   方法   ash   div   

原文地址:https://www.cnblogs.com/roadlandscape/p/12380481.html

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