Specification动态查询
1.0 内容介绍
- 使用Specification动态查询
- 使用Specification完成分页查询
- 表与表之间的关系及建表原则
- 配置JPA基于注解一对多关系的映射
- 完成一对多映射关系的相应操作
- 配置JPA基于注解多对多关系的映射
- 基于多对多映射关系的相应操作
- 对象导航查询
1.1 Specification动态查询介绍
- 什么是动态查询?
查询条件不固定,可变的。- 为什么要使用动态查询?
实际开发中的查询条件不固定。- 有时候我们在查询某个实体的时候,给定的条件是不固定的,这时就需要动态构建相应的查询语句,在Spring Data Jpa中可以通过JpaSpecificationExecutor接口查询。相比JPQL,其优势是类型安全,更加的面向对象。
之前查询方式条件都是固定的,在实际开发中,查询条件往往是变的,需要动态的拼接查询条件。
/*创建客户表*/
CREATE TABLE cst_customer (cust_id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',cust_name varchar(32) NOT NULL COMMENT '客户名称(公司名称)',cust_source varchar(32) DEFAULT NULL COMMENT '客户信息来源',cust_industry varchar(32) DEFAULT NULL COMMENT '客户所属行业',cust_level varchar(32) DEFAULT NULL COMMENT '客户级别',cust_address varchar(128) DEFAULT NULL COMMENT '客户联系地址',cust_phone varchar(64) DEFAULT NULL COMMENT '客户联系电话',PRIMARY KEY (`cust_id`)
) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;/*创建联系人表*/
CREATE TABLE cst_linkman (lkm_id bigint(32) NOT NULL AUTO_INCREMENT COMMENT '联系人编号(主键)',lkm_name varchar(16) DEFAULT NULL COMMENT '联系人姓名',lkm_gender char(1) DEFAULT NULL COMMENT '联系人性别',lkm_phone varchar(16) DEFAULT NULL COMMENT '联系人办公电话',lkm_mobile varchar(16) DEFAULT NULL COMMENT '联系人手机',lkm_email varchar(64) DEFAULT NULL COMMENT '联系人邮箱',lkm_position varchar(16) DEFAULT NULL COMMENT '联系人职位',lkm_memo varchar(512) DEFAULT NULL COMMENT '联系人备注',lkm_cust_id bigint(32) NOT NULL COMMENT '客户id(外键)',PRIMARY KEY (`lkm_id`),KEY `FK_cst_linkman_lkm_cust_id` (`lkm_cust_id`),CONSTRAINT `FK_cst_linkman_lkm_cust_id` FOREIGN KEY (`lkm_cust_id`) REFERENCES `cst_customer` (`cust_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
1.2 Specification动态查询
1.2.1 使用Specifications完成条件查询
1.2.2 基于Specifications的分页查询
1.2.3 方法对应关系
Specification动态查询相关推荐
- 使用jap的specification动态查询的演示案例与一些注意事项
目录 学习背景与使用步骤 使用specification进行动态分页查询案例演示,包含按时间的范围查询 学习背景与使用步骤 最近在项目中遇到一个需求:对单个或者是多个条件进行分页查询(写在一个接口中) ...
- spring data jpa封装specification实现简单风格的动态查询
github:https://github.com/peterowang/spring-data-jpa-demo 单一实体的动态查询: @Servicepublic class AdvancedUs ...
- jpa 动态查询条件 数组_Spring data jpa 复杂动态查询方式总结
一.Spring data jpa 简介 首先JPA是Java持久层API,由Sun公司开发, 希望整合ORM技术,实现天下归一. 诞生的缘由是为了整合第三方ORM框架,建立一种标准的方式,目前也是 ...
- Spring-Data-JPA 动态查询黑科技
在开发中,用到动态查询的地方,所有的查询条件包括分页参数,都会被封装成一个查询类XxxQuery 比如说上一篇中的Item 那么ItemQuery就像这样 @Data public class Ite ...
- querydsl动态 sql_Spring data jpa 复杂动态查询方式总结
一.Spring data jpa 简介 首先JPA是Java持久层API,由Sun公司开发, 希望整合ORM技术,实现天下归一. 诞生的缘由是为了整合第三方ORM框架,建立一种标准的方式,目前也是 ...
- SpringDataJpa (二)-动态查询多表操作
SpringDataJpa (二)-动态查询&多表操作 一.动态查询 1.Specifications动态查询 1.1 搭建测试环境 1.1.1 导入坐标 1.1.2 创建客户实体类 1.1. ...
- Spring之Specification复杂查询和Criteria查询
Specification官网 [一目了然]Spring Data JPA使用Specification动态构建多表查询.复杂查询及排序示例 JPA 使用 Specification 复杂查询和 Cr ...
- SpringBoot JPA(JpaRepository)动态查询 分页展示
大家知道Hibernate可以很轻松的根据提供条件进行动态筛选查询,那个JPA怎么实现呢,其中最为简单的就是使用Specification实现JPA的动态查询,本人也是初步接触JPA,第一次使用JPA ...
- JpaRepository动态查询sql
本文介绍JpaRepository动态查询sql 在使用前,需要导入 import javax.persistence.EntityManager; import javax.persistence. ...
- Spring data jpa 动态查询封装
最近几天学习一下jpa,发现在动态查询方面支持不是很好,一个包含多种动态查询条件的列表需要写大量的代码,而我本身有强迫症,代码有洁癖,大量的重复的代码,自然不爽,于是就.......,废话少说,直接上 ...
最新文章
- 【Python】print 不换行输出
- Mac OS 怎么设置host
- 31、SAM文件中flag含义解释工具--转载
- 一、数据预处理——数据归一化 数据标准化
- Spring Boot笔记-JPA分页(后端分页)
- myeclipse背景设置
- python多线程下载_python3 多线程下载
- 数据结构专题(二):2.5在链表指定位置插入元素
- 利用百度Echarts.js生成雷达图
- IOS Animation-KeyPath值
- Adapter与AdapterView
- 刚体的转动惯量的c语言题目,刚体的转动惯量题.doc
- 针对高通BMS的研究 高通电量计
- 深度残差网络_深度残差收缩网络:借助注意力机制实现特征的软阈值化
- MySQL的索引失效问题
- 颜色代码:网页颜色代码大全及色彩搭配教程
- tomcat10 实例化servlet 500错误解决办法
- 6个自学python必看网站
- springboot 利用aop实现系统日志和操作日志记录
- caffe源码学习:softmaxWithLoss前向计算