JPA使用(Querydsl)
1.新建entity
多对多的处理方式,在中间表的实体假如一对一
一对多的处理方式
2.创建dao
复杂sql直接在这里编写sql,然后直接调用dao方法
3.创建实体类并提供与entity的转换构造方法
4.repo层:业务处理,增删改加事务,调用dsl
5.dsl层:jpa处理,封装实体类返回,limit的处理方式
6.where多个条件需要判断的处理方式以及like处理方式
7.in的处理方式
8.文本类型需要处理
9.in后面可以直接加子查询,而form后面则不行,除非用queryDsl + blaze-persistence
10.对于需要表名动态拼接,可以写一个拦截器NamingInterceptor 继承EmptyInterceptor,重写onPrepareStatement方法对sql预处理。可以定义一个ThreLocal进行存储拼接内容
11.jpa很多时候返回的是Tuple类型(只要是查询多个指定字段就是返回Tuple类型),这时候可以使用Projections.bean(),返回指定泛型
public List<BizType> findBizByMsgType(int userId, int msgType) {JPAQuery<BizType> query = queryFactory.select(Projections.bean(BizType.class, businessTypeEntity.id,businessTypeEntity.name, businessTypeEntity.startTime, businessTypeEntity.endTime,businessTypeEntity.type, ub.busType)).from(ub).leftJoin(businessTypeEntity).on(ub.typeId.eq(businessTypeEntity.id)).leftJoin(bs).on(ub.typeId.eq(bs.biztypeId)).leftJoin(es).on(bs.enterpriseSpecnumBindId.eq(es.id));if (msgType==2){query.leftJoin(sn).on(es.specnumId.eq(sn.id)).leftJoin(cc).on(sn.channelId.eq(cc.id));}return query.where(ub.userId.eq(userId).and(es.msgType.eq(msgType)).and(businessTypeEntity.state.eq(1))).orderBy(businessTypeEntity.id.asc()).fetch();}
- update的时候,多个字段使用多个set实现.
Querydsl-JPA学习(入门篇)
Querydsl-JPA学习(进阶篇)
参考
JPA使用(Querydsl)相关推荐
- Spring JPA整合QueryDSL
前言 Spring JPA是目前比较常用的ORM解决方案,但是其对于某些场景并不是特别的方便,例如查询部分字段,联表查询,子查询等. 而接下来我会介绍与JPA形成互补,同时也是与JPA兼容得很好的框架 ...
- springboot整合JPA+MYSQL+queryDSL数据增删改查
Spring Boot Jpa 是 Spring 基于 ORM 框架.Jpa 规范的基础上封装的一套 Jpa 应用框架,可使开发者用极简的代码即可实现对数据的访问和操作.它提供了包括增删改查等在内的常 ...
- Spring Data Jpa使用QueryDsl接口出现的一些问题
1.QuerydslPredicateExecutor当实现此接口时,如果出现什么什么类没有找到的时候,请确认相关的querydsl依赖是否已经添加到maven依赖中 <dependency&g ...
- Spring boot JPA+Gradle+QueryDSL 完美配置生成Q文件依赖
1. 环境(理论上不限) IDEA 2019.3.5 springboot 2.3.0 gradle 6.3 querydsl 4.2.1 JDK 1.8 2. 核心配置(build.gradle ) ...
- jpa整合querydsl实现简单查询以及左联查询
用意: 为了解决jpa复杂查询以及多表查询难以的问题,故找到该神器(querydsl),使用该框架后,可以使jpa像mybatis一样灵活,随心所欲.下面的代码只展示了常用的mysql操作,包含动态查 ...
- JPA 和 QueryDSL
querydsl极简入门 QueryDSL+gradle+idea spring boot-jpa整合QueryDSL 关于 QueryDSL 配置和使用(详细) querydls关联查询 query ...
- JPA 复杂查询 - Querydsl
添加依赖 <!--query dsl --> <dependency> <groupId>com.querydsl</groupId> <art ...
- Spring Data JPA REST Query QueryDSL
案例概述 在本教程中,我们将研究使用Spring Data JPA和Querydsl为REST API构建查询语言. 在本系列的前两篇文章中,我们使用JPA Criteria和Spring Data ...
- Spring Data JPA 实战
课程介绍 <Spring Data JPA 实战>内容是基于作者学习和工作中实践的总结和升华,有一句经典的话:"现在的开发人员是站在巨人的肩上,弯道超车".因现在框架越 ...
- java dsl框架_Spring Boot整合QueryDSL的实现示例
之前研究Jooq,今天来研究一下搭配JPA的QueryDSL吧. 简介 Querydsl是一个Java开源框架用于构建类型安全的SQL查询语句.它采用API代替拼凑字符串来构造查询语句.可跟 Hibe ...
最新文章
- Windows7_x64下编译64位ffmpeg
- php缓存accestoken_PHP获取微信access_token并缓存和自动更新
- unity发布android报错,Unity移动端入门 - Android那些事 /AAR包发布错误
- 8086汇编-实验7-制表
- P2469 [SDOI2010]星际竞速
- PetaPoco初体验(转)
- C++11 并发指南五(std::condition_variable 详解)
- 沈梦辰回应闲鱼卖假货事件:负责到底 不做一锤子买卖
- 一直当菜鸟吧!——关于全局变量
- 扩展卡尔曼滤波器设计
- 二分图匹配----基于匈牙利算法和KM算法
- 浅析 路印协议--Loopring 及整体分析 Relay 源码
- socket 服务器
- 百度地图api初次申请及简单应用
- 安卓Android Studio开发环境,无需连接外网
- EasyExcel导出Excel 自定义 表头颜色
- CleanMyMac4.12最新版mac系统内存空间清理教程
- 什么是V2X?如何通过V2X技术实现5G智慧交通?
- 一键搞定黑白照片上色,模糊的老照片瞬间变清晰
- 微信小程序-wxml笔记(更新中)