• Hibernate- 连接查询


    01.搭建开发环境

    02.连接查询

    package com.gordon.test;
    
    import java.util.Arrays;
    import java.util.List;
    
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import org.junit.Test;
    
    import com.gordon.domain.Book;
    import com.gordon.domain.Publisher;
    import com.gordon.utils.HibernateUtil;
    
    /**
     * 连接查询
     * @author Administrator
     */
    public class TestDemo5 {
    	
    	/**
    	 * 连接查询-右外连接
    	 * 查询结果
    		Hibernate: 
    		    select
    		        book0_.id as id1_0_0_,
    		        publisher1_.id as id1_1_1_,
    		        book0_.name as name2_0_0_,
    		        book0_.price as price3_0_0_,
    		        book0_.publisher_id as publishe4_0_0_,
    		        publisher1_.name as name2_1_1_ 
    		    from
    		        t_book book0_ 
    		    left outer join
    		        t_publisher publisher1_ 
    		            on book0_.publisher_id=publisher1_.id
    		云计算技术及性能优化
    		---电子工业出版社
    		C语言程序设计
    		---电子工业出版社
    		中国冰雪梦
    		---电子工业出版社
    		Photoshop图形图像处理
    		---北京大学出版社
    		VisualBasic2015实践教程 
    		---北京大学出版社
    		生产微服务 
    		---人民邮电出版社
    		架构探险:轻量级微服务架构(下册)
    		---人民邮电出版社
    	 */
    	@Test
    	public void run4() {
    		Session session = HibernateUtil.getCurrentSession();
    		Transaction transaction = session.beginTransaction();
    		
    		String hql = "from Book b right join b.publisher p";
    		Query query = session.createQuery(hql);
    		
    		
    		Book b = null;
    		Publisher p = null;
    		
    		List<Object[]> list = query.list();
    		for (Object[] book : list) {
    			
    			b = (Book) book[0];
    			p = (Publisher) book[1];
    			
    			System.out.println(b.getName());
    			System.out.println("---" + p.getName());
    		}
    		
    		transaction.commit();
    	}
    	
    	/**
    	 * 连接查询-左外连接
    	 * 查询结果
    		Hibernate: 
    		    select
    		        book0_.id as id1_0_0_,
    		        publisher1_.id as id1_1_1_,
    		        book0_.name as name2_0_0_,
    		        book0_.price as price3_0_0_,
    		        book0_.publisher_id as publishe4_0_0_,
    		        publisher1_.name as name2_1_1_ 
    		    from
    		        t_book book0_ 
    		    left outer join
    		        t_publisher publisher1_ 
    		            on book0_.publisher_id=publisher1_.id
    		云计算技术及性能优化
    		---电子工业出版社
    		C语言程序设计
    		---电子工业出版社
    		中国冰雪梦
    		---电子工业出版社
    		Photoshop图形图像处理
    		---北京大学出版社
    		VisualBasic2015实践教程 
    		---北京大学出版社
    		生产微服务 
    		---人民邮电出版社
    		架构探险:轻量级微服务架构(下册)
    		---人民邮电出版社
    	 */
    	@Test
    	public void run3() {
    		Session session = HibernateUtil.getCurrentSession();
    		Transaction transaction = session.beginTransaction();
    		
    		String hql = "from Book b left join b.publisher p";
    		Query query = session.createQuery(hql);
    		
    		
    		Book b = null;
    		Publisher p = null;
    		
    		List<Object[]> list = query.list();
    		for (Object[] book : list) {
    			
    			b = (Book) book[0];
    			p = (Publisher) book[1];
    			
    			System.out.println(b.getName());
    			System.out.println("---" + p.getName());
    		}
    		
    		transaction.commit();
    	}
    	
    	/**
    	 * 连接查询-隐式内连接
    	 * 查询结果
    		Hibernate: 
    		    select
    		        book0_.id as id1_0_0_,
    		        publisher1_.id as id1_1_1_,
    		        book0_.name as name2_0_0_,
    		        book0_.price as price3_0_0_,
    		        book0_.publisher_id as publishe4_0_0_,
    		        publisher1_.name as name2_1_1_ 
    		    from
    		        t_book book0_ cross 
    		    join
    		        t_publisher publisher1_ 
    		    where
    		        book0_.publisher_id=publisher1_.id
    		云计算技术及性能优化
    		---电子工业出版社
    		C语言程序设计
    		---电子工业出版社
    		中国冰雪梦
    		---电子工业出版社
    		Photoshop图形图像处理
    		---北京大学出版社
    		VisualBasic2015实践教程 
    		---北京大学出版社
    		生产微服务 
    		---人民邮电出版社
    		架构探险:轻量级微服务架构(下册)
    		---人民邮电出版社
    	 */
    	@Test
    	public void run2() {
    		Session session = HibernateUtil.getCurrentSession();
    		Transaction transaction = session.beginTransaction();
    		
    		String hql = "from Book b, Publisher p where b.publisher = p";
    		Query query = session.createQuery(hql);
    		
    		
    		Book b = null;
    		Publisher p = null;
    		
    		List<Object[]> list = query.list();
    		for (Object[] book : list) {
    			
    			b = (Book) book[0];
    			p = (Publisher) book[1];
    			
    			System.out.println(b.getName());
    			System.out.println("---" + p.getName());
    		}
    		
    		transaction.commit();
    	}
    	
    	/**
    	 * 连接查询-显示内连接
    	 * 查询结果
    		Hibernate: 
    		    select
    		        book0_.id as id1_0_0_,
    		        publisher1_.id as id1_1_1_,
    		        book0_.name as name2_0_0_,
    		        book0_.price as price3_0_0_,
    		        book0_.publisher_id as publishe4_0_0_,
    		        publisher1_.name as name2_1_1_ 
    		    from
    		        t_book book0_ 
    		    inner join
    		        t_publisher publisher1_ 
    		            on book0_.publisher_id=publisher1_.id
    		云计算技术及性能优化
    		---电子工业出版社
    		C语言程序设计
    		---电子工业出版社
    		中国冰雪梦
    		---电子工业出版社
    		Photoshop图形图像处理
    		---北京大学出版社
    		VisualBasic2015实践教程 
    		---北京大学出版社
    		生产微服务 
    		---人民邮电出版社
    		架构探险:轻量级微服务架构(下册)
    		---人民邮电出版社
    	 */
    	@Test
    	public void run1() {
    		Session session = HibernateUtil.getCurrentSession();
    		Transaction transaction = session.beginTransaction();
    	
    		String hql = "from Book b inner join b.publisher";
    		Query query = session.createQuery(hql);
    		
    		
    		Book b = null;
    		Publisher p = null;
    		
    		List<Object[]> list = query.list();
    		for (Object[] book : list) {
    			
    			b = (Book) book[0];
    			p = (Publisher) book[1];
    			
    			System.out.println(b.getName());
    			System.out.println("---" + p.getName());
    		}
    		
    		transaction.commit();
    	}
    }
    
  • 相关阅读:
    调试JavaScript/VB Script脚本程序(ASP篇)
    成功接收来自Internet的邮件必须要做到的条件
    (转)Ext与.NET超完美整合 .NET开发者的超级优势
    如何防垃圾邮件用你的邮件服务器转发
    记录书籍名称
    GRE网站
    JAVA线程的缺陷
    【让这些电影给你“治病”】
    zoj题目分类
    Oracle to_char格式化函数
  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/7421473.html
Copyright © 2020-2023  润新知