经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Spring Boot » 查看文章
Spring Boot jpa Service层代码实例
来源:jb51  时间:2019/10/8 9:02:57  对本文有异议

这篇文章主要介绍了Spring Boot jpa Service层代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  1. package com.fei.service.impl;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import javax.persistence.criteria.CriteriaBuilder;
  7. import javax.persistence.criteria.CriteriaQuery;
  8. import javax.persistence.criteria.Predicate;
  9. import javax.persistence.criteria.Root;
  10.  
  11. import org.springframework.beans.BeanUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.data.domain.Page;
  14. import org.springframework.data.domain.Pageable;
  15. import org.springframework.data.jpa.domain.Specification;
  16. import org.springframework.stereotype.Service;
  17.  
  18. import com.fei.NotFoundException;
  19. import com.fei.po.Blog;
  20. import com.fei.po.Type;
  21. import com.fei.repository.BlogRepository;
  22. import com.fei.service.BlogService;
  23.  
  24. /**
  25. * Created by zxf on 2019年10月3日
  26. */
  27. @Service
  28. public class BlogServiceImpl implements BlogService {
  29.  
  30. @Autowired
  31. private BlogRepository blogRepository;
  32.  
  33. /**
  34. * 根据id查询一条博客
  35. *
  36. * @param id
  37. * @return
  38. */
  39. @Override
  40. public Blog getBlog(Long id) {
  41. return blogRepository.findById(id).get();
  42. }
  43.  
  44. /**
  45. * 多条件动态查询博客列表
  46. *
  47. * @param pageable
  48. * @param blog
  49. * @return
  50. */
  51. @Override
  52. public Page<Blog> listBlog(Pageable pageable, Blog blog) {
  53. return blogRepository.findAll(new Specification<Blog>() {
  54.  
  55. @Override
  56. public Predicate toPredicate(Root<Blog> root, CriteriaQuery<?> cq, CriteriaBuilder cb) {
  57. List<Predicate> predicates = new ArrayList<>();
  58.  
  59. String title = blog.getTitle();
  60. if (!"".equals(title) && title != null) {
  61. predicates.add(cb.like(root.<String>get("title"), "%" + title + "%"));
  62. }
  63.  
  64. Long id = blog.getType().getId();
  65. if (id != null) {
  66. predicates.add(cb.equal(root.<Type>get("type").get("id"), id));
  67. }
  68.  
  69. boolean isRecommend = blog.isRecommend();
  70. if (isRecommend) {
  71. predicates.add(cb.equal(root.<Boolean>get("recommend"), isRecommend));
  72. }
  73.  
  74. cq.where(predicates.toArray(new Predicate[predicates.size()]));
  75. return null;
  76. }
  77. }, pageable);
  78. }
  79.  
  80. /**
  81. * 保存一条博客
  82. *
  83. * @param blog
  84. * @return
  85. */
  86. @Override
  87. public Blog saveBlog(Blog blog) {
  88. return blogRepository.save(blog);
  89. }
  90.  
  91. /**
  92. * 更新一条博客,先根据id查出结果回显
  93. *
  94. * @param id
  95. * @param blog
  96. * @return
  97. */
  98. @Override
  99. public Blog updateBlog(Long id, Blog blog) {
  100. Blog b = blogRepository.findById(id).get();
  101. if (b == null) {
  102. throw new NotFoundException("你要更新的博客不存在!");
  103. }
  104.  
  105. BeanUtils.copyProperties(b, blog);
  106. return blogRepository.save(blog);
  107. }
  108.  
  109. /**
  110. * 根据id删除一条博客
  111. *
  112. * @param id
  113. */
  114. @Override
  115. public void deleteBlog(Long id) {
  116. blogRepository.deleteById(id);
  117. }
  118.  
  119. }

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号