欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring data jpa如何只查詢實(shí)體部分字段

 更新時(shí)間:2021年06月11日 09:18:16   作者:芊雨_  
這篇文章主要介紹了spring data jpa如何只查詢實(shí)體部分字段的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

需求

現(xiàn)在有一張article表,用來儲存文章,對應(yīng)的實(shí)體類如下:

package com.qianyucc.blog.model;
import lombok.*;
import javax.persistence.*;
/**
 * @author lijing
 * @date 2019-08-05 14:28
 * @description 文章
 */
@Data
@Entity
@Table(name = "article")
public class Article {
    @Id
    // 主鍵自增
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Column(name = "author",unique = false,nullable = false,length = 20)
    private String author;
    @Column(name = "title",length = 100)
    private String title;
    @Column(name = "content",columnDefinition = "clob not null")
    private String content;
    @Column(name = "tags",length = 50)
    private String tags;
    @Column(name = "type")
    private Integer type;
    @Column(name = "categories",length = 50)
    private String categories;
    @Column(name = "gmt_create")
    private Long gmtCreate;
    @Column(name = "gmt_update")
    private Long gmtUpdate;
    @Column(name = "tabloid")
    private String tabloid;
    @Column(name = "likes")
    private Integer likes;
    @Column(name = "views")
    private Integer views;
}

現(xiàn)在需要查詢文章的所有分類,也就是categories屬性

解決方法

網(wǎng)上的一些方法分別是重寫構(gòu)造器、或者自定義接口作為返回類型,但是我試了后都不能很好的解決問題。下面提供一種方法,親測可以實(shí)現(xiàn)上面的需求。

一個(gè)字段的情況

Controler:

package com.qianyucc.blog.controller;
/**
 * @author lijing
 * @date 2019-08-05 15:13
 * @description
 */
@RestController
public class ArticleController {
    @Autowired
    private ArticleRepositoryarticleRepository;
    @GetMapping("/getAllCategories")
 public Object getAllCategories(){
     return articleRepository.getAllCategories();
 }
}

Repository:(這里省略Service層)

package com.qianyucc.blog.repository;
import com.qianyucc.blog.model.*;
import org.springframework.data.jpa.repository.*;
import java.util.*;
/**
 * @author lijing
 * @date 2019-08-05 14:28
 * @description 文章數(shù)據(jù)庫訪問層
 */
public interface ArticleRepository extends JpaRepository<Article,Long>,JpaSpecificationExecutor<Article> {
    @Query(value = "select distinct categories from article",nativeQuery = true)
    // 這里注意返回值用String類型接收
    List<String> findAllCategories();
}

上面的nativeQuery屬性設(shè)置為true的時(shí)候可以使用SQL語句。

測試結(jié)果:

測試結(jié)果

控制臺打?。?/p>

控制臺打印

多個(gè)字段的情況

只需修改Repository,注意現(xiàn)在的返回值為List<Map<String,Object>>

public interface ArticleRepository extends JpaRepository<Article,Long>,JpaSpecificationExecutor<Article> {
    @Query(value = "select author,categories from article",nativeQuery = true)
    List<Map<String,Object>> findAllCategories();
}

測試結(jié)果

測試結(jié)果

控制臺打印

控制臺打印

JPA查詢部分字段的相關(guān)事項(xiàng)

JPA使用HQL查詢部分字段出錯(cuò):

org.hibernate.hql.internal.ast.QuerySyntaxException: XXX is not mapped

解決:

應(yīng)該@Entity指定name名,name值為對應(yīng)表名,同@Table的name值相同

使用HQL的注意:

1.想要使用JPA查詢部分信息,需要使用HQL

2.select需跟實(shí)體,可以是map(必須是小寫,大寫試了下報(bào)錯(cuò)),或者是將待查詢的字段單獨(dú)封裝成一個(gè)實(shí)體,new 實(shí)體

3.查詢的字段中需要指定as別名,否則得到的map結(jié)果集中,key值默認(rèn)是"0",“1”,“2”…數(shù)字

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • springmvc中下載中文文件名稱為下劃線的解決方案

    springmvc中下載中文文件名稱為下劃線的解決方案

    這篇文章主要介紹了springmvc中下載中文文件名稱為下劃線的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • spring+maven實(shí)現(xiàn)郵件發(fā)送

    spring+maven實(shí)現(xiàn)郵件發(fā)送

    這篇文章主要為大家詳細(xì)介紹了spring+maven實(shí)現(xiàn)郵件發(fā)送,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Java堆空間爆滿導(dǎo)致宕機(jī)的問題分析及解決

    Java堆空間爆滿導(dǎo)致宕機(jī)的問題分析及解決

    團(tuán)隊(duì)有一個(gè)服務(wù),一直運(yùn)行的好好的,突然訪問異常了,先是請求超時(shí),然后直接無法訪問,本文將給大家介紹Java堆空間爆滿導(dǎo)致宕機(jī)的問題分析及解決,需要的朋友可以參考下
    2024-02-02
  • 基于parameters參數(shù)實(shí)現(xiàn)參數(shù)化過程解析

    基于parameters參數(shù)實(shí)現(xiàn)參數(shù)化過程解析

    這篇文章主要介紹了基于parameters參數(shù)實(shí)現(xiàn)參數(shù)化過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java中枚舉類型的一種使用方式

    Java中枚舉類型的一種使用方式

    這篇文章主要介紹了Java中枚舉類型的一種使用方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • java面向?qū)ο蟮娜筇匦灾焕^承用法實(shí)例分析

    java面向?qū)ο蟮娜筇匦灾焕^承用法實(shí)例分析

    這篇文章主要介紹了java面向?qū)ο蟮娜筇匦灾焕^承用法,結(jié)合實(shí)例形式分析了java面向?qū)ο蟪绦蛟O(shè)計(jì)中繼承的基本原理與具體使用方法,需要的朋友可以參考下
    2019-11-11
  • 關(guān)于Future機(jī)制原理及解析

    關(guān)于Future機(jī)制原理及解析

    這篇文章主要介紹了關(guān)于Future機(jī)制原理,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • SpringBoot @PostConstruct原理用法解析

    SpringBoot @PostConstruct原理用法解析

    這篇文章主要介紹了SpringBoot @PostConstruct原理用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • SwiftUI中級List如何添加新內(nèi)容(2020年教程)

    SwiftUI中級List如何添加新內(nèi)容(2020年教程)

    這篇文章主要介紹了SwiftUI中級List如何添加新內(nèi)容,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 淺談Java中的n種隨機(jī)數(shù)產(chǎn)生辦法

    淺談Java中的n種隨機(jī)數(shù)產(chǎn)生辦法

    眾所周知,隨機(jī)數(shù)是任何一種編程語言最基本的特征之一。而生成隨機(jī)數(shù)的基本方式也是相同的:產(chǎn)生一個(gè)0到1之間的隨機(jī)數(shù)??此坪唵?,但有時(shí)我們也會忽略了一些有趣的功能。
    2015-09-09

最新評論