1、添加pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
2、常用crud
//列表条件查询
Specification<EngagePo> specification = new Specification<EngagePo>() {
private static final long serialVersionUID = 1L;
@Override
public Predicate toPredicate(Root<EngagePo> root, CriteriaQuery<?> criteriaQuery,
CriteriaBuilder cb) {
List<Predicate> list = new ArrayList<Predicate>();
// 机构、时间、状态
String orgCode = engageVo.getOrgId();
if (!StringUtils.isEmptyOrNull(orgCode)) {
list.add(cb.equal(root.get("orgCode"), orgCode));
}
Path<Date> createTimeField = root.get("crtTm");
Date start = engageVo.getStartDate();
Date end = engageVo.getEndDate();
if (!StringUtils.isEmptyOrNull(engageVo.getStartDate())
&& !StringUtils.isEmptyOrNull(engageVo.getEndDate())) {
list.add(cb.between(createTimeField, start, end));
}
String state = engageVo.getState();
if (!StringUtils.isEmptyOrNull(state)) {
list.add(cb.equal(root.get("state"), state));
}
return cb.and(list.toArray(new Predicate[list.size()]));
}
};
Page<EngagePo> result = engageRepository.findAll(specification, page);
//更新
EngagePo engagePONew = ModelMapperUtil.map(engageVo, EngagePo.class);
Optional<EngagePo> findById = engageRepository.findById(engageVo.getId());
if (findById.isPresent()) {
EngagePo engagePOOld = findById.get();
engagePOOld.copy(engagePONew);
engageRepository.save(engagePOOld);
}