spring data jap操作
package com.example.demo; import com.example.entity.UserJ;
import com.example.respository.UserJRespository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.test.context.junit4.SpringRunner; import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.util.ArrayList;
import java.util.List; @RunWith(SpringRunner.class)
@SpringBootTest
public class TestJpaCurd {
@Autowired
private UserJRespository userJRespository; @Autowired
private EntityManager entityManager; /**
* 插入或者是更新一条数据
*/
@Test
public void insertAndUpdate() {
UserJ userJ = new UserJ();
userJ.setUsername("alex222");
userJ.setEmail("wangzhilei@jd.com");
userJ.setId(1);
userJRespository.save(userJ);
} /**
* 删除一条数据
*/
@Test
public void delete() {
userJRespository.deleteById(1);
} /**
* 获取所有的数据
*
* @return
*/
@Test
public void getAll() {
List<UserJ> all = userJRespository.findAll();
for (UserJ userJ : all) {
System.out.println(userJ);
}
} /**
* 查询所有并+分页+排序
* <p>
* 从0页开始
* 用最新的PageRequest.of来分页
*/
@Test
public void getOneData() {
Sort sort = new Sort(Sort.Direction.DESC, "id");
PageRequest pageRequest = PageRequest.of(0, 1, sort);
/**
* 使用匿名内部类
* 构建查询条件
* root 代表查询的对象
* criteriaBuilder 条件封闭器,如and or like 等
* criteriaQuery 查询的条件
*/
Specification<UserJ> specification = new Specification<UserJ>() {
@Override
public Predicate toPredicate(Root<UserJ> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder cb) {
// 单个条件查询
// Predicate predicate = cb.equal(root.get("email"), "sqyinchao@jd.com");
/**
* 多条件查询
*/
List<Predicate> list = new ArrayList<>();
list.add(cb.equal(root.get("email"), "sqyinchao@jd.com"));
list.add(cb.equal(root.get("email"), "wangzhilei@jd.com"));
// 这里面放的是可变参数,则可以放一个数组进去,然后给拆分 相当于js中的...符号
Predicate[] predicates = new Predicate[list.size()];
return cb.or(list.toArray(predicates));
}
};
Page<UserJ> all = userJRespository.findAll(specification, pageRequest);
for (UserJ userJ : all) {
System.out.println(userJ);
}
}
}
spring data jap操作的更多相关文章
- 使用Spring Data Redis操作Redis(集群版)
说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...
- spring data jpa 操作pipelinedb 的continuous view 与stream
一. 由于pipelinedb是postgreSQL的扩展,因此相关依赖于配置都合集成postgreSQL是一样的. springboot + spring data jpa + postgreSQL ...
- 通过Spring Data Neo4J操作您的图形数据库
在前面的一篇文章<图形数据库Neo4J简介>中,我们已经对其内部所使用的各种机制进行了简单地介绍.而在我们尝试对Neo4J进行大版本升级时,我发现网络上并没有任何成型的样例代码以及简介,而 ...
- Spring Boot (五)Spring Data JPA 操作 MySQL 8
一.Spring Data JPA 介绍 JPA(Java Persistence API)Java持久化API,是 Java 持久化的标准规范,Hibernate是持久化规范的技术实现,而Sprin ...
- Spring Data Solr操作solr的简单案例
Spring Data Solr简介 虽然支持任何编程语言的能力具有很大的市场价值,你可能感兴趣的问题是:我如何将Solr的应用集成到Spring中?可以,Spring Data Solr就是为了方便 ...
- Spring Boot使用Spring Data Redis操作Redis(单机/集群)
说明:Spring Boot简化了Spring Data Redis的引入,只要引入spring-boot-starter-data-redis之后会自动下载相应的Spring Data Redis和 ...
- 使用Spring Data Redis操作Redis(单机版)
说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...
- Spring Data JAP 多个不是必填的查询条件处理
简单的介绍一下使用场景,DAO层用Spring Data实现,dao 只有接口,实现类是容器启动时动态字节码生成,接口里定义方法,方法上@Query 里写JPQL查询语句. 基于以上的限制,如果对一个 ...
- spring data jap的使用 1
最近一直在研究Spring Boot,今天为大家介绍下Spring Data JPA在Spring Boot中的应用,如有错误,欢迎大家指正. 先解释下什么是JPA JPA就是一个基于O/R映射的标准 ...
随机推荐
- 一对一关联关系基于主键映射的异常 IdentifierGenerationException
具体异常:org.hibernate.id.IdentifierGenerationException: attempted to assign id from null one-to-one pro ...
- SOJ1029 Humble Numbers (枚举)
A number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, ...
- JSON解析问题
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/quanqinayng/article/details/25121955 这是data.chatFil ...
- BZOJ2816:[ZJOI2012]网络(LCT)
Description 有一个无向图G,每个点有个权值,每条边有一个颜色.这个无向图满足以下两个条件: 对于任意节点连出去的边中,相同颜色的边不超过两条. 图中不存在同色的环,同色的环指相同颜色的边构 ...
- 「CF375D Tree and Queries」
题目 \(dsu\ on\ tree\)的板子题了 \(dsu\ on\ tree\)本质上一种优秀通过轻重链剖分优化到\(O(nlogn)\)的暴力 一般用来解决没有修改的允许离线的子树查询问题 首 ...
- 什么是mysql的事务和实现
msql的一个事务的回归测试,可以自测一下,了解下事务. 举个例子:小明和小飞两个人现在手里各有¥100,突然小飞脑袋出问题了说给小明¥50,现在他们手里的钱就是(小明:¥150,小飞:¥50):这样 ...
- Etherlab debian安装记录
debian wheezy 7.11(虚拟机安装选择桥接网卡) #set ustc source #apt-get install sudo #nano /etc/sudoers;add userNa ...
- Spring Bean自动注册的实现方案
这里Spring管理的Bean,可以认为是一个个的Service,每个Service都是一个服务接口 自动注册Service的好处: 1.根据指定的name/id获取对应的Service,实现简单工厂 ...
- 类似QQ的聊天工程
首先建立一个html:<!DOCTYPE html><html lang="en"><head> <meta charset=" ...
- 关于从Oracle数据库中删除表数据
1,删除表 drop 1.1 执行drop table table_name 语句 被 drop后的表被放在用户回收站(user_recyclebin)里,而没有被直接删除掉,回收站里的表可以被恢复 ...