Spring Boot jpa Service层代码实例
人气:5这篇文章主要介绍了Spring Boot jpa Service层代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
package com.fei.service.impl; import java.util.ArrayList; import java.util.List; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import com.fei.NotFoundException; import com.fei.po.Blog; import com.fei.po.Type; import com.fei.repository.BlogRepository; import com.fei.service.BlogService; /** * Created by zxf on 2019年10月3日 */ @Service public class BlogServiceImpl implements BlogService { @Autowired private BlogRepository blogRepository; /** * 根据id查询一条博客 * * @param id * @return */ @Override public Blog getBlog(Long id) { return blogRepository.findById(id).get(); } /** * 多条件动态查询博客列表 * * @param pageable * @param blog * @return */ @Override public Page<Blog> listBlog(Pageable pageable, Blog blog) { return blogRepository.findAll(new Specification<Blog>() { @Override public Predicate toPredicate(Root<Blog> root, CriteriaQuery<?> cq, CriteriaBuilder cb) { List<Predicate> predicates = new ArrayList<>(); String title = blog.getTitle(); if (!"".equals(title) && title != null) { predicates.add(cb.like(root.<String>get("title"), "%" + title + "%")); } Long id = blog.getType().getId(); if (id != null) { predicates.add(cb.equal(root.<Type>get("type").get("id"), id)); } boolean isRecommend = blog.isRecommend(); if (isRecommend) { predicates.add(cb.equal(root.<Boolean>get("recommend"), isRecommend)); } cq.where(predicates.toArray(new Predicate[predicates.size()])); return null; } }, pageable); } /** * 保存一条博客 * * @param blog * @return */ @Override public Blog saveBlog(Blog blog) { return blogRepository.save(blog); } /** * 更新一条博客,先根据id查出结果回显 * * @param id * @param blog * @return */ @Override public Blog updateBlog(Long id, Blog blog) { Blog b = blogRepository.findById(id).get(); if (b == null) { throw new NotFoundException("你要更新的博客不存在!"); } BeanUtils.copyProperties(b, blog); return blogRepository.save(blog); } /** * 根据id删除一条博客 * * @param id */ @Override public void deleteBlog(Long id) { blogRepository.deleteById(id); } }
您可能感兴趣的文章:
- spring boot jpa写原生sql报Cannot resolve table错误解决方法
- 详解SpringBoot实现JPA的save方法不更新null属性
- SpringBoot Data JPA 关联表查询的方法
- 详解spring boot jpa整合QueryDSL来简化复杂操作
- springboot使用JPA时间类型进行模糊查询的方法
- Spring Boot + Jpa(Hibernate) 架构基本配置详解
- SpringBoot集成Spring Data JPA及读写分离
- Spring Boot中使用Spring-data-jpa实现数据库增删查改
- springboot jpa分库分表项目实现过程详解
加载全部内容