博客管理
1.Service层
根据需求需要如下方法:
根据id查询博客:getBlog();
分页查询列出所有博客:listBlogs();
在前端页面中查询条件为三个,分别为标题,分类,是否被推荐,所以新建了BlogQuerylei类
这里使用了SpringData中的Specification<>接口进行查询
插入博客数据的方法:saveBlog();
更新博客数据的方法:updateBlog();
删除博客数据的方法:deleteBlog();
BlogQuery类:
@Data
@NoArgsConstructor
public class BlogQuery {
private String title;
private Long typeId;
private boolean recommend;
}
BlogServiceImpl类
@Service
public class BlogServiceImpl implements BlogService {
@Autowired
private BlogRepository blogRepository;
@Override
public Blog getBlog(Long id) {
return blogRepository.findOne(id);
}
@Override
public Page<Blog> listBlog(Pageable pageable, BlogQuery blog) {
return blogRepository.findAll(new Specification<Blog>() {
@Override
public Predicate toPredicate(Root<Blog> root, CriteriaQuery<?> cq, CriteriaBuilder cb) {
List<Predicate> predicates = new ArrayList<>();
if(!"".equals(blog.getTitle()) && blog.getTitle() != null){
predicates.add(cb.like(root.<String>get("title"),"%"+blog.getTitle()+"%"));
}
if(blog.getTypeId() != null){
predicates.add(cb.equal(root.