转载自:https://www.cnblogs.com/vincentren/p/9596601.html

第五章

如果多表关联查询时(上节4.3)想将多表的中不同字段选出来时,咱们用的是java8语法将list组装,那么有没有不需要自行组装这一步,查询返回的结果自动就帮我们组装好了呢?

这边介绍个简便方法,使用Projections。

entity

public class StudentDto {private long id;private String name;private int age;private long schoolId;private String schoolName;public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public long getSchoolId() {return schoolId;}public void setSchoolId(long schoolId) {this.schoolId = schoolId;}public String getSchoolName() {return schoolName;}public void setSchoolName(String schoolName) {this.schoolName = schoolName;}@Overridepublic String toString() {return "StudentDto{" +"id=" + id +", name='" + name + '\'' +", age=" + age +", schoolId=" + schoolId +", schoolName='" + schoolName + '\'' +'}';}
}

这里包含我们想要的学生id,姓名,年龄,学校id,学校名称等字段。

test

@Test
public void selectStudent5() {QStudent qStudent = QStudent.student;QSchool qSchool = QSchool.school;List<StudentDto> students = queryFactory.select(Projections.fields(StudentDto.class,qStudent.id,qStudent.name,qStudent.age,qStudent.schoolId,qSchool.name.as("schoolName"))).from(qSchool, qStudent).where(qSchool.id.eq(qStudent.schoolId)).fetch();System.out.println(students);
}  

返回的结果就自动拼装成了我们想要的StudentDto。

JPA教程(第五章)相关推荐

  1. 思科计算机网络ppt,【思科网络课件】计算机网络双语教程第五章.ppt

    [思科网络课件]计算机网络双语教程第五章.ppt (27页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 OSI Network Laye ...

  2. AArch64教程第五章

    AArch64教程第五章 本章,我们将看看在aarch64中如何访问内存 内存 随机存储器,或者简单来说,内存是任一架构的必需部分.内存能够被看作由一系列连续的被称为地址的编号组成的数组,每一个元素都 ...

  3. 计算机辅助设计应用教程,计算机辅助设计基础教程第五章.ppt

    计算机辅助设计基础教程第五章 第5章 3ds max 5.1 3ds max基础知识 5.2 对象的创建与编辑 5.3 复合对象的创建 5.4 NURBS建模 5.5 材质和贴图 5.6 摄影机.灯光 ...

  4. SQL基础教程第五章笔记

    第五章 复杂查询 5.1 视图 5.1.1 视图和表 从SQL的角度来看,视图和表是相同的.两者的区别在于表中保存的是实际的数据,而视图中保存的是SELECT语句.视图本身并不存储数据. 视图的优点: ...

  5. CE教程 第五章 《指针》

    步骤 6: 指针: (密码=098712) 上一步解释了怎样用代码寻找功能对付变化位置.但单独用不容易找到地址并修改成你要的数值.这就是为什么要用到指针了.在TUT下面有两个按钮,一个会改变数值,另一 ...

  6. Android[中级教程]第五章 XML解析之PULL解析器

    这一章我们来学习Android中的XML解析器,Android中自带了三个XML解析器,有PULL,SAX,DOM解析器,其中PULL跟SAX都是以事件作为驱动导向的解析器,优点是占用内存小,处理速度 ...

  7. stty详解-Unix/Linux编程实践教程第五章 学习stty

    读书笔记-第五章 连接控制 学习stty 先放上思维导图 为设备编程&设备就像文件 前面所学的知识都是基于文件的,而在unix/linux系统中,所有的设备(打印机,终端,话筒,摄像头等等)也 ...

  8. JavaEE企业级应用开发教程 第五章

    第五章(Spring的事务管理) [单选题] 1.以下关于< tx:method>元素的属性描述错误的是().5分 A.name属性为可选属性,它指定了与事务属性相关的方法名 B.prop ...

  9. Web前端开发精品课HTML CSS JavaScript基础教程第五章课后编程题答案

    编程题: 图5-15所示为一个问卷调查的网页,请制作出来.要求:大标题用h1标签:小题目用h3标签:前两个问题使用有序列表:最后一个问题使用无序列表. 用VS2013新建ASP.NET空网站,添加新项 ...

  10. C言语教程第五章:函数(1)

    概述 在第一章中曾经先容过,C源序次是由函数构成的. 固然在背面各章的序次中都只需一个主函数main(), 但实用序次每每由多个函数构成.函数是C源序次的根本模块, 经由历程对函数模块的挪用完成特定的 ...

最新文章

  1. HTML5 新增结构元素分为主体结构元素和非主体结构元素
  2. 速读训练软件_记忆力训练:如何提高注意力呢?
  3. SpringMVC拦截器-用户登录权限控制代码实现2
  4. 2018-3-28Linux系统管理(16)计算机网络基础
  5. ffmpeg播放器 android,Android使用FFmpeg(六)--ffmpeg实现音视频同步播放
  6. MyBatis 使用 foreach 批量插入
  7. 算到怀疑人生!如何用并查集解决朋友圈个数问题?
  8. 怎么看tomcat连接的哪个mysql_如何验证tomcat和mysql连接成功呢
  9. HNOI2008 遥远的行星
  10. ExtJS入门到精通视频教程下载 ExtJS视频教程
  11. M.2接口 通道SATA,PCI-Ex2,PCI-Ex4,B key,M key,BM key,NVMe,AHCI都是什么
  12. 【优化求解】基于狼群算法WPA求解最优目标matlab代码
  13. Sumatra PDF——好用快捷工具介绍及使用
  14. [思考进阶]02 如何进行认知升级?
  15. Win10创建新用户账户
  16. RMQPOJ3264
  17. 完全二叉树的节点个数
  18. String index out of range: -824264796 不明的原因导致驱动程序造成失败,请回报这个例外。
  19. 某品威客,js逆向★★
  20. APP退守、小程序进击,谁在主导内容创业下半场?

热门文章

  1. 深度学习原理与框架-RNN网络框架-LSTM框架 1.控制门单元 2.遗忘门单元 3.记忆门单元 4.控制门单元更新 5.输出门单元 6.LSTM网络结构...
  2. warning ..\package.json: No license field
  3. error: invalid application of 'sizeof' to an incomplete type 'JNINativeMethod []'
  4. H3C基础配置学习笔记1-端口配置
  5. Cocos Creator 优化,帧动画优化
  6. 微商利用淘宝评价怎么引流?如何利用淘宝买低价产品刷评价引流?
  7. 20210424# 咕泡架构
  8. 7.5 Java(农夫果园【完结篇】:一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果葡萄、草莓、苹果)
  9. 44道JS难题,做对一半就是高手
  10. 智能血压计如何测血压计