现在的位置: 首页 > 编程语言 > 正文

SpringBootjpaService层代码实例

2020年02月13日 编程语言 ⁄ 共 2371字 ⁄ 字号 评论关闭

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

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

本文标题: Spring Boot jpa Service层代码实例

以上就上有关SpringBootjpaService层代码实例的相关介绍,要了解更多spring,boot,jpa,service,层,代码内容请登录学步园。

抱歉!评论已关闭.