说明

在使用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();

springboot jpa自定义SQL查询相关推荐

  1. jpa常用查询方法使用总结自定义sql查询

    文章目录 一.JPA自定义查询方法 实体类 1.1 单条件查询一条数据 1.2 单条件查询多条数据 1.3 多条件查询数据 1.4 查询某一个字段 1.5 in查询 1.6 like查询 二.自定义s ...

  2. Spring JPA自定义SQL分页查询

    JPA自定义SQL分页查询 [存在的问题] 在使用Spring JPA原生SQL进行分页查询时存在如下问题: 1.使用List转Page工具类导致查询速度较慢,原因在于先把所有数据查询出来返回成Lis ...

  3. 工作流实战_27_flowable 自定义sql查询

    项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base 业务场景:在实际开发中,由于我们需要一些flowable的个性化查询,而且他们提供的ap ...

  4. java使用jdbc连接oracle,实现自定义sql查询,加载字段注释

    java使用jdbc连接oracle,实现自定义sql查询,加载字段注释 第一步.加载驱动 引用包 import java.sql.Connection; import java.sql.Driver ...

  5. springboot jpa 自定义返回对象

    为什么80%的码农都做不了架构师?>>>    任何ORM框架都少不了开放自定义sql的问题.jpa自然也不例外,很多场景需要写复杂sql的. 首先定义一个方法签名,然后打上@Que ...

  6. Spring Data JPA使用必备(三):Spring Data JPA自定义SQL写法

    Spring Data JPA的前两篇已经写了通过方法名格式自动生成SQL,也简单的提到了@Query注解.但是往往真正的业务逻辑里面,这些是完全不够用的,涉及到一些稍微复杂一点的查询就会有点问题,如 ...

  7. jpa原生query_Spring Data JPA原生SQL查询

    package com.test.cms.dao.repository; import org.springframework.stereotype.Repository; import javax. ...

  8. jpa 原生sql 查询返回一个实体_JPA查询--使用原生sql 并且把查询结果转为实体对象...

    这篇文章主要记录 使用原生sql查询 并且把查询结果转为实体对象, 注意:这儿使用的数据库 是oracle数据库 这儿记录了三种查询:精确查询,模糊查询,分页查询. 1.把原生sql查询的结果转为实体 ...

  9. jpa 自定义sql if_SpringBoot整合JPA实现多数据源及读写分离

    SpringBoot整合JPA实现多数据源及读写分离 项目地址:https://github.com/baojingyu/spring-boot-jpa-dynamic-datasource 本项目使 ...

最新文章

  1. Quartz在Spring中动态设置cronExpression
  2. 两分钟彻底让你明白Android Activity生命周期(图文)!
  3. P1111 修复公路
  4. dedecms提取某栏目及子栏目名称到首页怎么弄
  5. 互联网平台“直播+”赋能研究报告
  6. go语言一个包含nil指针的接口不是nil接口的理解
  7. 浏览器与硬件交互的方法_【第2058期】现代浏览器内部揭秘之一
  8. oracle++dtcol,Oracle 中的 Incarnation 到底是个什么?实验操作篇
  9. ping 中的“TTL是什么意思
  10. (转)Asp.net页面生命周期详解任我行(1)-小试牛刀,编写页面代码
  11. usb不能识别的解决方案
  12. 计算出当天零分零点对应时间戳的方法分享
  13. 基础拍摄前期和基础后期修图
  14. 宝刀——《荒原的呼唤》选载之一
  15. c语言课程设计(图书馆管理系统)
  16. 【⚠️windows删除文件夹抽风了⚠️】“错误0x80070091:目录不是空的”问题处理
  17. SW2016启动界面闪退、激活工具不出现All done! Enjoy!
  18. 4篇YouTube推荐系统论文, 一起来看看别人家的孩子
  19. 爱奇艺qsv格式视频无损转换为MP4
  20. springboot 模块引用_Spring Boot(三):SpringBoot多模块(module)项目搭建

热门文章

  1. VTK可移动三维坐标轴 vtkMovableAxesWidget
  2. 获取Synopsys coverage report excel 文件单元格RGB值
  3. 飞机大战java_java版飞机大战实战项目详细步骤
  4. libp2p kad 迭代查询
  5. 管理学总论之新古典管理理论和现代管理理论
  6. 弱网工具ATC使用总结
  7. android shpe 三角形_在Android中制作三角形按钮
  8. 脚本批量提取文件路径
  9. opencv4.3.0 Cmake后debug模式生成不了opencv_world430d.lib
  10. qq有哪些引流方法?2020最新QQ引流方法汇总