最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot jpa Service層代碼實例

 更新時間:2019年10月07日 09:24:33   作者:行之間  
這篇文章主要介紹了Spring Boot jpa Service層代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了Spring Boot jpa Service層代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

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;

  /**
   * 根據(jù)id查詢一條博客
   * 
   * @param id
   * @return
   */
  @Override
  public Blog getBlog(Long id) {
    return blogRepository.findById(id).get();
  }

  /**
   * 多條件動態(tài)查詢博客列表
   * 
   * @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);
  }

  /**
   * 更新一條博客,先根據(jù)id查出結(jié)果回顯
   * 
   * @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);
  }

  /**
   * 根據(jù)id刪除一條博客
   * 
   * @param id
   */
  @Override
  public void deleteBlog(Long id) {
    blogRepository.deleteById(id);
  }

}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于JAVA_HOME路徑修改之后JDK的版本依然不更改的解決辦法

    關(guān)于JAVA_HOME路徑修改之后JDK的版本依然不更改的解決辦法

    今天小編就為大家分享一篇關(guān)于JAVA_HOME路徑修改之后JDK的版本依然不更改的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • SpringBoot之使用Feign實現(xiàn)微服務(wù)間的交互

    SpringBoot之使用Feign實現(xiàn)微服務(wù)間的交互

    這篇文章主要介紹了SpringBoot中使用Feign實現(xiàn)微服務(wù)間的交互,對微服務(wù)這方面感興趣的小伙伴可以參考閱讀本文
    2023-03-03
  • Java面試題沖刺第十七天--基礎(chǔ)篇3

    Java面試題沖刺第十七天--基礎(chǔ)篇3

    這篇文章主要為大家分享了最有價值的三道java基礎(chǔ)面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-08-08
  • java項目中classpath指向哪里

    java項目中classpath指向哪里

    這篇文章介紹了java項目中classpath指向哪里及工作原理,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Spring Boot中整合PageHelper實現(xiàn)分頁功能詳細(xì)步驟

    Spring Boot中整合PageHelper實現(xiàn)分頁功能詳細(xì)步驟

    在Spring Boot項目中整合PageHelper并實現(xiàn)分頁查詢功能的全部步驟,通過以上配置和代碼,我們可以輕松地實現(xiàn)數(shù)據(jù)庫分頁查詢,提高了開發(fā)效率并改善了用戶體驗,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Java中的RocketMQ消費冪等詳解

    Java中的RocketMQ消費冪等詳解

    這篇文章主要介紹了Java中的RocketMQ消費冪等詳解,當(dāng)出現(xiàn)消費者對某條消息重復(fù)消費的情況時,重復(fù)消費的結(jié)果與消費一次的結(jié)果是相同的,并且多次消費并未對業(yè)務(wù)系統(tǒng)業(yè)務(wù)產(chǎn)生任何負(fù)面影響,那么這個消費過程就是消息冪等,需要的朋友可以參考下
    2023-10-10
  • Spring MVC文件配置以及參數(shù)傳遞示例詳解

    Spring MVC文件配置以及參數(shù)傳遞示例詳解

    這篇文章主要給大家介紹了關(guān)于Spring MVC文件配置以及參數(shù)傳遞的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Leetcode常見鏈表問題及代碼示例

    Leetcode常見鏈表問題及代碼示例

    這篇文章主要介紹了Leetcode常見鏈表問題及代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 深入了解Java核心類庫--泛型類

    深入了解Java核心類庫--泛型類

    這篇文章主要為大家詳細(xì)介紹了java泛型類定義與使用的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能給你帶來幫助
    2021-07-07
  • 老生常談Scanner的基本用法

    老生常談Scanner的基本用法

    下面小編就為大家?guī)硪黄仙U凷canner的基本用法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07

最新評論

剑川县| 墨脱县| 贺兰县| 行唐县| 游戏| 新蔡县| 内丘县| 通州市| 奎屯市| 嵊州市| 朔州市| 石首市| 京山县| 九龙坡区| 吉林市| 云梦县| 德阳市| 新河县| 喀喇| 高雄县| 青铜峡市| 菏泽市| 黄陵县| 泸水县| 罗田县| 巨野县| 西丰县| 神池县| 泾阳县| 洛浦县| 临泽县| 读书| 蛟河市| 天峻县| 乐亭县| 边坝县| 郑州市| 方山县| 哈巴河县| 乌海市| 丁青县|