分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

hibernate的多表查询

发布时间:2023-09-06 02:17责任编辑:顾先生关键词:暂无标签

1.交叉连接

select  * from A ,B

2.内连接   可以省略inner join

   隐式内连接:

select * from A,B where A.id = B.aid;

   显式内连接:

select * from A inner join B on A.id = B.aid;

   迫切内连接:

需要加上fetch关键字

内连接查询两者共有的属性数据。

3.外连接 outer join

  左外连接:

select * from A left outer join B on A.id= B.aid;

  右外连接:

select * from A right outer join B on A.id = B.aid;

迫切左外连接:需要加上fetch关键字,返回的是对象,不再是数组。

外连接查询共有属性和一方连接的属性

Session session = HibernateUtils.getCurrentSession(); ???????Transaction tx = session.beginTransaction(); ???????// SQL:SELECT * FROM cst_customer c INNER JOIN cst_linkman l ON ???????// c.cust_id = l.lkm_cust_id; ???????// HQL:内连接 from Customer c inner join c.linkMans ???????/* ????????* List<Object[]> list = session.createQuery( ????????* "from Customer c inner join c.linkMans").list(); for (Object[] ????????* objects : list) { System.out.println(Arrays.toString(objects)); } ????????*/ ???????// HQL:迫切内连接 其实就在普通的内连接inner join后添加一个关键字fetch. from Customer c inner ???????// join fetch c.linkMans ???????List<Customer> list = session.createQuery("select distinct c from Customer c inner join fetch c.linkMans") ???????????????.list();// 通知hibernate,将另一个对象的数据封装到该对象中 ???????for (Customer customer : list) { ???????????System.out.println(customer); ???????} ???????tx.commit();

hibernate的多表查询

原文地址:https://www.cnblogs.com/yanqingguo/p/9757791.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved