Spring Boot jpa Service层代码实例

网友投稿 293 2022-12-26


Spring Boot jpa Service层代码实例

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

*/

@Service

public class BlogServiceImpl implements BlogService {

@Autowired

private BlogRepository blogRepository;

/**

* 根据id查询一条博客

*

* @parFohMjfam id

* @return

*/

@Override

public Blog getBlog(Long id) {

return blogRepository.findById(id).get();

}

/**

* 多条件动态查询博客列表

*

* @param pageable

* @param blog

* @return

*/

@Override

public Page listBlog(Pageable pageable, Blog blog) {

return blogRepository.findAll(new Specification() {

@Override

public Predicate toPredicate(Root root, CriteriaQuery> cq, CriteriaBuilder cb) {

List predicates = new ArrayList<>();

String title = blog.getTitle();

if (!"".equals(title) && title != null) {

predicates.add(cb.like(root.get("title"), "%" + title + "%"));

FohMjf }

Long id = blog.getType().getId();

if (id != null) {

predicates.add(cb.equal(root.get("type").get("id"), id));

}

boolean isRecommend = blog.isRecommend();

if (isRecommend) {

predicates.add(cb.equal(root.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("你要更新的博客不存在!");

}

BeanUtiFohMjfls.copyProperties(b, blog);

return blogRepository.save(blog);

}

/**

* 根据id删除一条博客

*

* @param id

*/

@Override

public void deleteBlog(Long id) {

blogRepository.deleteById(id);

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:淘宝联盟的api测试工具(淘宝联盟的api测试工具有哪些)
下一篇:自动化脚本接口测试工具(软件测试自动化脚本)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~