首页 > 编程 > Java > 正文

Spring Boot jpa Service层代码实例

2019-11-26 08:30:53
字体:
来源:转载
供稿:网友

这篇文章主要介绍了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);  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表