这篇文章主要介绍了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日 */@Servicepublic 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); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。
本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728