hibernate两张表关联查询
很久没用过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两张表关联查询相关推荐
- 如何两张表关联查询?
如何两张表关联查询select * from table1 a,table2 b where a.id = b.lid === select a.anme, b.bname, c.value from ...
- SQL 两张表关联查询
select a.Cj_Name,a.Zz_Name,a.EQTYPE_NAME,a.Equip_GyCode, CASE WHEN a.Equip_Specialty='动设备' THEN 'M' ...
- 动人的牵线美的连接符-两张表的查询(一)
牵线,想起过去不久的七夕,喜鹊为牛郎织女搭起约会的鹊桥,看是多美丽的天衣无缝的相逢. 最近在做高校云4.0项目,从考评跑到UI,成功地被调到成绩系统.说实话对成绩系统的 ...
- MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)两个表使用条件从另外一个表获取数据更新本表
MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)两个表使用条件从另外一个表获取数据更新本表 有两张表,info1, info2 . info1: info2: 方式一:要用info2中的 ...
- mysql两张表关联修改
mysql两张表关联修改 两张表的字段code是相同的,然后code作为关联参数来关联两表,将user2 中的name写入到user1 的name中,三表,四表,多表都是一个道理 UPDATE use ...
- sql怎么两个表关联查询
在 SQL 中,我们可以使用 JOIN 关键字来两个表关联查询.例如,假设有两个表:table1 和 table2,并且它们之间有一个关联字段 field1.你可以使用如下的语句来两个表关联查询: S ...
- java后台两个表关联查询_简单界面+JAVA后台+数据库实现页面对数据库的两张关联表操作...
前几天写了简单的从页面对数据库进行的操作,下面对该功能进行升级,操作两张相关联的表:上次是对新闻类型的修改,我在这里就不重复了,可以查看我之前的博客, 首先从页面说起: 页面部分: 页面部分我用了10 ...
- 两张表联合查询为何没有用上索引?
我有两张表,一张叫teacherInfo,一张叫departmenInfo两张表有一个相同的字段,叫depnum,两张表都以这个字段建立了索引,可是我执行以下语句时,departmenInfo要进行全 ...
- mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验
使用SQL语句连接查询位于两个不同的服务器不同的数据库中的两张表,最初将SQL语句写成以下形式select*fromProduct pinnerjoin opendatasource('SQLOLED ...
- mysql 两张表合并查询_中级数据分析-多表查询
表的加法 表的联结 联结应用案例 case应用案例 一.表的加法 加法:union 表的加法是把两个表的数据,按行合并在一起. 表的加法,会把两个表里重复的数据删除,只保留一个. 如果想保留重复数据, ...
最新文章
- 硬核!尽量避免 BUG 手法
- 中国活性炭行业市场全景调研分析及需求趋势预测报告2022-2028年
- 利用windows优化大师软件卸载一手和清理一招
- 思想:CoreMVC是什么(3)
- 关于ios手机上传图片旋转问题的解决
- ssm框架里面前端拿HTML写,ssm框架引入Vue,声明式渲染,标签的href拼接字符串
- IIS7增加mine类型,以便可以访问apk
- 比尔·盖茨不玩IT了
- 基于音形码的中文字符串相似度算法(转)
- 2021-2004中国环境统计年鉴面板数据、环境面板数据
- 我的大学,我的SPR机器人队
- Topaz Sharpen A I人工智能清晰锐化PS插件
- 《程序员》5月刊精彩内容预告
- kindle paper white部分优化
- mysql弱类型_PHP弱类型及相关函数Bypass
- Seurat-单细胞文献复现第二弹-02
- SF26 | 适用于商品+股指的枢轴点趋势策略
- 差分隐私(Differential Privacy)定义及其理解
- jasypt 加解密的各个版本支持,看这一篇文章就够了
- 从scratch到python轻松学下载_STEAM教育-[少儿创客] 从Scratch到Python——python turtle-电路城论坛 - 电子工程师学习交流园地...
热门文章
- typecho图片插件_Typecho图片表情插件Smilies1.1.3更新
- 测量string变量长度函数_测量字符串长度的函数
- 微信小程序--单行文本、多行文本溢出变省略号...
- WEB表单设计学习心得
- PS——证件照换底色的极简方法
- 什么是 Access Token
- 看完这篇文章,再也不怕别人问我JVM了
- codemirror 格式化_教你轻松搞懂vue-codemirror基本用法:主实现代码编辑、验证提示
- 腾讯云OSS使用指南
- 剖析广州“开四停四”交通限行的实现技术