返回的是一个List集合,这个List集合的泛型是一个Object数组。最后会拿到一个里面放Object数组的List集合。


HQL内连接查询,发出SQL语句查询出来的结果集被Hibernate封装成Object数组(Object[])的集合。所以不会产生重复数据。但是必须得是主表对应的类Customer的toString()方法打印出Order,而从表对应的类Order不打印customer对象。

Query query = session.createQuery("from Customer c inner join c.orders");//Query接口

List<Object[]> list  = query.list();
  for (Object[] objects : list) {
   System.out.println(Arrays.toString(objects));
  }


Query query = session.createQuery("from Customer c  inner join fetch c.orders");//Query接口

List<Customer> list = query.list();
for (Customer customer : list) {//关联查询的时候会得到多少条记录?
System.out.println(customer);//两个表的关联查询,内连接查询会得到30条记录
//为什么会有重复的数据?因为这是封装的问题
}

Query query = session.createQuery("from Customer c  inner join fetch c.orders");//Query接口

List<Customer> list = query.list();
for (Customer customer : list) {//关联查询的时候会得到多少条记录?
System.out.println(customer);//两个表的关联查询,内连接查询会得到30条记录
//为什么会有重复的数据?因为这是封装的问题
}

Query query = session.createQuery("select distinct c from Customer c  inner join fetch c.orders");

List<Customer> list = query.list();
for (Customer customer : list) {//关联查询的时候会得到多少条记录?
System.out.println(customer);//两个表的关联查询,内连接查询会得到30条记录
//为什么会有重复的数据?因为这是封装的问题
}

Query query = session.createQuery("select distinct c from Customer c  inner join fetch c.orders");//Query接口

List<Customer> list = query.list();
for (Customer customer : list) {//关联查询的时候会得到多少条记录?
System.out.println(customer);//两个表的关联查询,内连接查询会得到30条记录
//为什么会有重复的数据?因为这是封装的问题
}


Query query = session.createQuery("from Order o inner join o.customer");//Query接口

List<Object[]> list  = query.list();
  for (Object[] objects : list) {
   System.out.println(Arrays.toString(objects));
  }

Query query = session.createQuery("from Order o  inner join fetch o.customer");//Query接口

List<Order> list = query.list();
        for (Order order : list) {
   System.out.println(order);
  }

Query query = session.createQuery("select distinct o from Order o  inner join fetch o.customer");//Query接口

List<Order> list = query.list();
for (Order order : list) {
System.out.println(order);
}


迫切内连接查出来的也是30条数据,但是为什么会有很多重复的数据?因为是封装的问题。

最新文章

  1. python向数据库插入数据时出现乱码解决方案
  2. C# 委托和事件(二):使用.Net框架中的EventArgs和EventHandler
  3. copy 和 strong(或retain)的区别
  4. Bootstrap3.0学习第十五轮(大屏幕介绍、页面标题、缩略图、警示框、Well)
  5. p188习题2
  6. Using pg_dump restore dump file on Odoo
  7. JavaWeb学习总结(十五)--过滤器的应用
  8. 济南学习 Day 3 T2 pm
  9. MySQL中的datetime与timestamp比较
  10. python学习第十六天 --继承进阶篇
  11. Struts2 文件的上传与下载
  12. 解读python中SocketServer源码
  13. dotweb框架之旅 [四] - 常用对象-HttpContext
  14. MyBatis笔记03
  15. 程序员十大热门flag,有你的吗?
  16. 《内蒙古自治区第十三届大学生程序设计竞赛试题_H 公孙玉龙》
  17. C# linq操作是否延迟对照表
  18. centos7搭建时间服务器
  19. IE在开发工具启动的情况下(打开F12)时 JS才能执行
  20. ♣eclipse护眼颜色和关键字颜色设置

热门文章

  1. work-shineyoo:杂项1906
  2. System.Web.Mvc.RedirectResult.cs
  3. 黑裙辉DS918+安装错误码21,安装教程 重装需要重新制作启动盘
  4. Java—重写与重载的区别
  5. MySQL Server Logs
  6. 爬虫(二)建立代理ip池
  7. HashMap 和 concurrentHashMap
  8. Activiti流程实例管理
  9. 阿里云HBase Ganos全新升级,推空间、时空、遥感一体化基础云服务
  10. php缓存技术有哪些(总结)