IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> springboot jpa自定义SQL查询 -> 正文阅读

[Java知识库]springboot jpa自定义SQL查询

说明

在使用JPA实现数据持久化过程中经常会遇到这种情况:我有2张表是一对多的关系,需要通过一个外键ID去关联查询到另外一张表的字段。例如,1张商品表food_info其中存有商品分类ID category_id关联商品分类表food_category,那么我需要在查询商品的时候同时查出存储在商品分类表中的分类名称列category_name

要达到的效果

在页面列表中展示查询到的商品分类中文名。
在这里插入图片描述

实现代码

这里主要借助JPA提供的@Query自定义查询语句。在查询之前需要先定义几个模型类。

商品表模型

@Data
@Entity
public class FoodInfo {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String foodName;
    private BigDecimal price;
    private String icon; // 商品图片
    private String info; // 商品描述
    private Integer stock; // 商品库存
    private Integer categoryId; // 商品分类
    private Date createTime;
    private Date updateTime;
}

商品分类表模型

@Data
@Entity
public class FoodCategory {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String categoryCode; // 分类编码
    private String categoryName; // 分类名称
    private Date createTime;
    private Date updateTime;
}

商品VO模型

@Data
@AllArgsConstructor
public class FoodVO {
    private Integer id;
    private String foodName;
    private BigDecimal price;
    private String icon; // 商品图片
    private String info; // 商品描述
    private Integer stock; // 商品库存
    private Integer categoryId; // 商品分类
    private String categoryName; // 商品名称
}

商品Repository

@Query("SELECT new com.test.food_mall.vo.FoodVO(f.id, f.foodName,f.price,f.icon,f.info,f.stock,f.categoryId,c.categoryName) " +
             "from FoodInfo f left join FoodCategory c " +
             "on f.categoryId = c.id")
     List<FoodVO> findAllCustom();
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:22:29  更:2022-03-04 15:26:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:03:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码