很久没用过hibernate了,今天尝试了一下多表连接查询,忘记了怎么配置,然后网上搜到了另一种的联合查询方式。

首先是两个实体类,一个用户表,一个商品表

User类

public class User {private Integer id;private String userName;private String phone;private String address;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "User [id=" + id + ", userName=" + userName + ", phone=" + phone + ", address=" + address + "]";}}

Goods商品类

public class Goods {private Integer goodId;private String goodName;private Integer userId;public Integer getGoodId() {return goodId;}public void setGoodId(Integer goodId) {this.goodId = goodId;}public String getGoodName() {return goodName;}public void setGoodName(String goodName) {this.goodName = goodName;}public Integer getUserId() {return userId;}public void setUserId(Integer userId) {this.userId = userId;}@Overridepublic String toString() {return "Goods [goodId=" + goodId + ", goodName=" + goodName + ", userId=" + userId + "]";}}

这里就不上传hibernate的cfg和hbm的映射了。

这时候想要多表连接可以添加一个第三方的类,把需要的属性都封装到第三个整合的实体类中,并且已构造器的方式传入

UserAndGoods整合类

public class UserAndGoods {//以下是我们想要查出来的数据private String username;private String phone;private String address;private String goodname;public UserAndGoods() {super();}//想要封装的数据已构造器的方式传入public UserAndGoods(String username, String phone, String address, String goodname) {super();this.username = username;this.phone = phone;this.address = address;this.goodname = goodname;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getGoodname() {return goodname;}public void setGoodname(String goodname) {this.goodname = goodname;}@Overridepublic String toString() {return "UserAndGoods [username=" + username + ", phone=" + phone + ", address=" + address + ", goodname="+ goodname + "]";}}

测试类

public class Shop {@Testpublic void ss(){Session session = HibernateUtils.openSession();Transaction transaction = session.beginTransaction();//在hql语句中直接new我们写好的整合的类,并且用构造器传入String hql ="select new com.hbsi.pojo.UserAndGoods(u.userName,u.phone,u.address,g.goodName) from User u,Goods g  where u.id = g.userId and u.id = 1";//集合的泛型是整合类List<UserAndGoods> list = session.createQuery(hql).list();transaction.commit();for (UserAndGoods userAndGoods : list) {System.out.println(userAndGoods);}}
}

结果:

这样的方式可以不用写那些复杂的一对多多对一的关系了

hibernate两张表关联查询相关推荐

  1. 如何两张表关联查询?

    如何两张表关联查询select * from table1 a,table2 b where a.id = b.lid === select a.anme, b.bname, c.value from ...

  2. SQL 两张表关联查询

    select a.Cj_Name,a.Zz_Name,a.EQTYPE_NAME,a.Equip_GyCode, CASE WHEN a.Equip_Specialty='动设备' THEN 'M' ...

  3. 动人的牵线美的连接符-两张表的查询(一)

            牵线,想起过去不久的七夕,喜鹊为牛郎织女搭起约会的鹊桥,看是多美丽的天衣无缝的相逢.         最近在做高校云4.0项目,从考评跑到UI,成功地被调到成绩系统.说实话对成绩系统的 ...

  4. MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)两个表使用条件从另外一个表获取数据更新本表

    MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)两个表使用条件从另外一个表获取数据更新本表 有两张表,info1, info2 . info1: info2: 方式一:要用info2中的 ...

  5. mysql两张表关联修改

    mysql两张表关联修改 两张表的字段code是相同的,然后code作为关联参数来关联两表,将user2 中的name写入到user1 的name中,三表,四表,多表都是一个道理 UPDATE use ...

  6. sql怎么两个表关联查询

    在 SQL 中,我们可以使用 JOIN 关键字来两个表关联查询.例如,假设有两个表:table1 和 table2,并且它们之间有一个关联字段 field1.你可以使用如下的语句来两个表关联查询: S ...

  7. java后台两个表关联查询_简单界面+JAVA后台+数据库实现页面对数据库的两张关联表操作...

    前几天写了简单的从页面对数据库进行的操作,下面对该功能进行升级,操作两张相关联的表:上次是对新闻类型的修改,我在这里就不重复了,可以查看我之前的博客, 首先从页面说起: 页面部分: 页面部分我用了10 ...

  8. 两张表联合查询为何没有用上索引?

    我有两张表,一张叫teacherInfo,一张叫departmenInfo两张表有一个相同的字段,叫depnum,两张表都以这个字段建立了索引,可是我执行以下语句时,departmenInfo要进行全 ...

  9. mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验

    使用SQL语句连接查询位于两个不同的服务器不同的数据库中的两张表,最初将SQL语句写成以下形式select*fromProduct pinnerjoin opendatasource('SQLOLED ...

  10. mysql 两张表合并查询_中级数据分析-多表查询

    表的加法 表的联结 联结应用案例 case应用案例 一.表的加法 加法:union 表的加法是把两个表的数据,按行合并在一起. 表的加法,会把两个表里重复的数据删除,只保留一个. 如果想保留重复数据, ...

最新文章

  1. 硬核!尽量避免 BUG 手法
  2. 中国活性炭行业市场全景调研分析及需求趋势预测报告2022-2028年
  3. 利用windows优化大师软件卸载一手和清理一招
  4. 思想:CoreMVC是什么(3)
  5. 关于ios手机上传图片旋转问题的解决
  6. ssm框架里面前端拿HTML写,ssm框架引入Vue,声明式渲染,标签的href拼接字符串
  7. IIS7增加mine类型,以便可以访问apk
  8. 比尔·盖茨不玩IT了
  9. 基于音形码的中文字符串相似度算法(转)
  10. 2021-2004中国环境统计年鉴面板数据、环境面板数据
  11. 我的大学,我的SPR机器人队
  12. Topaz Sharpen A I人工智能清晰锐化PS插件
  13. 《程序员》5月刊精彩内容预告
  14. kindle paper white部分优化
  15. mysql弱类型_PHP弱类型及相关函数Bypass
  16. Seurat-单细胞文献复现第二弹-02
  17. SF26 | 适用于商品+股指的枢轴点趋势策略
  18. 差分隐私(Differential Privacy)定义及其理解
  19. jasypt 加解密的各个版本支持,看这一篇文章就够了
  20. 从scratch到python轻松学下载_STEAM教育-[少儿创客] 从Scratch到Python——python turtle-电路城论坛 - 电子工程师学习交流园地...

热门文章

  1. typecho图片插件_Typecho图片表情插件Smilies1.1.3更新
  2. 测量string变量长度函数_测量字符串长度的函数
  3. 微信小程序--单行文本、多行文本溢出变省略号...
  4. WEB表单设计学习心得
  5. PS——证件照换底色的极简方法
  6. 什么是 Access Token
  7. 看完这篇文章,再也不怕别人问我JVM了
  8. codemirror 格式化_教你轻松搞懂vue-codemirror基本用法:主实现代码编辑、验证提示
  9. 腾讯云OSS使用指南
  10. 剖析广州“开四停四”交通限行的实现技术