时间:2021-05-20
这篇文章主要介绍了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); }}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
什么是JPA一种规范,并非ORM框架,也就是ORM上统一的规范spring-boot-starter-data-jpa是SpringBoot的项目,包含了spr
Spring框架就像一个家族,有众多衍生产品例如boot、security、jpa等等。但他们的基础都是Spring的ioc和aopioc提供了依赖注入的容器a
jpa是JavaEE定义的一种规范,常用的实现一般是Hibernate,而spring-data-jpa则是对jpa的又一层封装,提供了更多便捷的方法。这里不会
一般我们在Spring的配置文件application.xml中对Service层代码配置事务管理,可以对Service的方法进行AOP增强或事务处理如事务回滚
Springboot内部提供的事务管理器是根据autoconfigure来进行决定的。比如当使用jpa的时候,也就是pom中加入了spring-boot-sta