springboot整合JPA 多表关联 :一对多 多对多

补充一下自定义SQL

 这是连表查询,可以任意查出字符,用Map接收

  @Testvoid test3() {JPAQueryFactory jpaQueryFactory = new JPAQueryFactory(em);QStudent student = QStudent.student;QMessage message = QMessage.message;//constructor(StuMesDto.class, student.id, student.name, student.grade, message.id, message.info)List<Map<Expression<?>, ?>> fetch = jpaQueryFactory.select(Projections.map(student.id, student.name, student.grade, message.id, message.info)).from(student).innerJoin(message).on(student.id.eq(message.stu_id)).orderBy(message.id.desc()).limit(1).offset((1 - 1) * 1).fetch();Object o = fetch.get(0).get(message.info);System.out.println(o);}

 这是连表查询,可以任意查出字符,用自定义对象接收

 @Testvoid test3() {JPAQueryFactory jpaQueryFactory = new JPAQueryFactory(em);QStudent student = QStudent.student;QMessage message = QMessage.message;//List<StuMesDto> fetch = jpaQueryFactory.select(Projections.constructor(StuMesDto.class, student.id, student.name, student.grade, message.id, message.info)).from(student).innerJoin(message).on(student.id.eq(message.stu_id)).orderBy(message.id.desc()).limit(1).offset((1 - 1) * 1).fetch();StuMesDto o = fetch.get(0);System.out.println(o);}
package com.jmj.springDataApp.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;@Data
@AllArgsConstructor
@NoArgsConstructor
public class StuMesDto {private Long sid;private String name;private Integer grade;private Long id;private String info;
}
QTeacher teacher = QTeacher.teacher;
QStudent student = QStudent.student;List<TeacherWithStudentsDto> result = jpaQueryFactory.select(Projections.constructor(TeacherWithStudentsDto.class,teacher.id,teacher.name,Projections.list(student))).from(teacher).leftJoin(student).on(teacher.id.eq(student.teacher.id)).groupBy(teacher.id).orderBy(teacher.id.asc()).limit(100) // 限制查询结果为前100个老师.fetch().stream().peek(dto -> dto.setStudents(dto.getStudents().subList(0, Math.min(dto.getStudents().size(), 10)))).collect(Collectors.toList());

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/298369.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JVM】虚拟机的组成+字节码文件组成+类的生命周期

什么是JVM&#xff1f; JVM 本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行Java字节码文件。 JVM的功能 1.解释和运行&#xff1a;对字节码文件中的指令实时的解释成机器码让计算机执行。 2.内存管理&#xff1a;自动为对象、方法等分配内存&#xff0c;自动…

C++类的继承

目录 什么是继承&#xff1f; 父类与子类对象的赋值转换 继承中的作用域问题 子类的默认成员函数问题 如何使一个类不能被继承&#xff1f; 父类的友元和静态成员变量 多重继承与菱形继承 继承和组合 什么是继承&#xff1f; 继承 (inheritance) 机制是面向对象程序设…

数据库系统概论 ---知识点大全(期末复习版)

&#xff08;一&#xff09;绪论 数据(Data)&#xff1a;是数据库中存储的基本对象 数据的定义&#xff1a;描述事物的符号记录 数据的种类&#xff1a;文字、图形、图象、声音等 数据的特点&#xff1a;数据与其语义是不可分的 数据库(Database,简称DB)&#xff1a;是长期…

React 路由传参

引言 在上一篇中&#xff0c;我们学习了 React 中使用路由技术&#xff0c;以及如何使用 MyNavLink 去优化使用路由时的代码冗余的情况。 这一节我们继续上一篇 React 路由进行一些补充 1. Switch 解决相同路径问题 首先我们看一段这样的代码 <Route path"/home&q…

用栈和队列分别实现求解迷宫问题(c++,c)

求解迷宫问题&#xff1a;给定一个迷宫要求输出其路径。 给出的迷宫如下&#xff08;可自行更改&#xff09; 可用两种方法实现1.栈2.队列 用栈只能找到路但路不是最简的最简的要用队列实现 用栈实现&#xff08;解析都在代码里了&#xff09; c&#xff08;实现&#xff0…

Linux系统编程(六):进程(下)

参考引用 UNIX 环境高级编程 (第3版)嵌入式Linux C应用编程-正点原子 1. 进程与程序 1.1 main() 函数由谁调用&#xff1f; C 语言程序总是从 main 函数开始执行int main(void) int main(int argc, char *argv[]) // 如果需要向应用程序传参&#xff0c;则选择该种写法操作系…

应急响应中的溯源方法

在发现有入侵者后&#xff0c;快速由守转攻&#xff0c;进行精准地溯源反制&#xff0c;收集攻击路径和攻击者身份信息&#xff0c;勾勒出完整的攻击者画像。 对内溯源与对内溯源 对内溯源&#xff1a;确认攻击者的行为 &#xff0c;分析日志 数据包等&#xff1b; 对外溯源&…

20231223使用Rockchip原厂的Android11调通Firefly的AIO-3399J开发板上的AP6356S

20231223使用Rockchip原厂的Android11调通Firefly的AIO-3399J开发板上的AP6356S 2023/12/23 14:14 开发板&#xff1a;Firefly的AIO-3399J【RK3399】 SDK&#xff1a;rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBrick】 Android11.0.tar.bz2…

Druid源码阅读-DruidStatInterceptor实现

上次我们在druid-spring-boot-starter里面看到有一个DruidSpringAopConfiguration的配置类&#xff0c;然后引入了DruidStatInterceptor这样一个切面逻辑。今天我们就来看一下这个类的实现。 DruidStatInterceptor 这个类的包路径下入com.alibaba.druid.support.spring.stat。…

中国肺癌情形

写在前面 再看下中国肺癌的情形 综述 文章名期刊影响因子Non-small cell lung cancer in ChinaCancer Commun16.2 摘要 风险因子&#xff1a;吸烟史、家族史、放射暴露、空气污染、慢性肺病 晚期PD-1/PD-L1抑制剂单药使用或联合化疗药物作为标准治疗。局部肺癌晚期&#xf…

搭建react+ant design pro+umi 项目框架

一、 写本文的原因 我搭建reactantdumi这个框架的原始资料主要是来源于&#xff08;ReactUmi4从零快速搭建中后台系统保姆级记录教程&#xff08;一、项目创建及初始化&#xff09;&#xff09; 而我写这篇文章的本意就是用来记录我用搭建时候的步骤汇总。 二、 npm和node版…

PyQt5和Qt designer的详细安装教程

Qt designer界面和所有组件功能的详细介绍参考&#xff1a;https://blog.csdn.net/qq_43811536/article/details/135186862?spm1001.2014.3001.5501 目录 0. 写在前面1. Anaconda创建虚拟环境2. 安装PyQt5和Qt designer3. 测试安装成功 0. 写在前面 Qt Designer是Qt提供的一种…