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

Hibernate- 连接查询的更多相关文章

  1. hibernate连接查询

    Hibernate的HQL语言类似于SQL语言,更适合于Java面向对象的思想. 类与数据库映射好了,不必考虑数据库. 实现Class1的表与Class2的表的联合查询: Class1的class2属 ...

  2. Hibernate批量处理数据、HQL连接查询

    一.批量处理操作 批量处理数据是指在一个事务场景中处理大量数据.在应用程序中难以避免进行批量操作,Hibernate提供了以下方式进行批量处理数据: (1)使用HQL进行批量操作     数据库层面 ...

  3. hibernate 实现多表连接查询(转载)

    http://www.cnblogs.com/lihuiyy/archive/2013/03/28/2987531.html 为了方便,直接粘过来,方便查看.不收藏了 Hibernate主要支持两种查 ...

  4. Hibernate的查询,二级缓存,连接池

    Hibernate的查询,二级缓存,连接池 1.Hibernate查询数据 Hibernate中的查询方法有5中: 1.1.Get/Load主键查询 使用get或者load方法来查询,两者之间的区别在 ...

  5. Hibernate【查询、连接池、逆向工程】

    前言 在Hibernate的第二篇中只是简单地说了Hibernate的几种查询方式....到目前为止,我们都是使用一些简单的主键查询阿...使用HQL查询所有的数据....本博文主要讲解Hiberna ...

  6. Hibernate批量处理数据、[HQL连接查询]

    一.批量处理操作 批量处理数据是指在一个事务场景中处理大量数据.在应用程序中难以避免进行批量操作,Hibernate提供了以下方式进行批量处理数据: (1)使用HQL进行批量操作 数据库层面 (2)使 ...

  7. Hibernate-ORM:13.Hibernate中的连接查询

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客将会解释Hibernate中的连接查询(各种join) 一,目录 1.内链接 1.1显式内连接(inn ...

  8. 【学习笔记】Hibernate HQL连接查询和数据批处理 (Y2-1-7)

    HQL连接查询 和SQL查询一样 hql也支持各种链接查询 如内连接 外连接 具体如下 左外连接 left (outer) join 迫切左外连接 left (outer) join fetch 右外 ...

  9. 转: Hibernate HQL查询 插入 更新(update)实例

    1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hq ...

  10. Hibernate的查询方式总结

    Hibernate的查询方式大体有三种,分别是HQL QBC和SQL三种.在网上查阅一一些资料,做了一个简单的总结. 1. SQL sql 是面向数据库表查询,from 后面跟的是表名,where 后 ...

随机推荐

  1. JQuery中事件one、bind、unbind、live、delegate、on、off、trigger、triggerHandler的各种使用区别

    JQuery事件one,支持参数 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> & ...

  2. OAF_OAF控件系列9 - Description Flexfiled描述性弹性域的实现(案例)

    2014-06-17 Created By BaoXinjian

  3. Dynamic DMA mapping Guide

    一.前言 这是一篇指导驱动工程师如何使用DMA API的文档,为了方便理解,文档中给出了伪代码的例程.另外一篇文档dma-api.txt给出了相关API的简明描述,有兴趣也可以看看那一篇,这两份文档在 ...

  4. Python 字典 update() 方法

    描述 Python 字典 update() 方法用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中. 用法与 Python dict() 函数相似. 语法 update ...

  5. SQL Server 异常处理机制(Begin try Begin Catch) 摘录

    begin try --SQL end try begin catch --sql (处理出错动作) end catch 我们将可能会出错的sql 写在begin try...end try 之间,若 ...

  6. php里面的注解(通过反射获取注解)

    /** * Created by PhpStorm. * User: Administrator * Date: 2018\10\12 0012 * Time: 14:30 */ /** * clas ...

  7. Spring的@Required注解

    该@Required注解适用于bean属性setter方法,并表示受影响的bean属性必须在XML配置文件在配置时进行填充.否则,容器会抛出一个BeanInitializationException异 ...

  8. Linux安装Qt详细步骤 亲测总结

    下载 qt-everywhere-opensource-src-4.8.4.tar.gz================准备工作====================yum install kern ...

  9. FPGA三分频,五分频,奇数分频

    我们在做FPGA设计时,有时会用到时钟频率奇数分频的频率,例如笔者FPGA的晶振为50M,当我们需要10M的时钟时,一种方式可以使用DCM或PLL获取,系统会内部分频到10M,但其实VERILOG内部 ...

  10. 在IntentService中使用Toast与在Service中使用Toast的异同

    1. 表象 Service中能够正常显示Toast,IntentService中不能正常显示Toast.在2.3系统上,不显示toast,在4.3系统上,toast显示.可是不会消失. 2. 问题分析 ...