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

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

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

需求

現(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)上面的需求。

一個字段的情況

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的時候可以使用SQL語句。

測試結(jié)果:

測試結(jié)果

控制臺打?。?/p>

控制臺打印

多個字段的情況

只需修改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查詢部分字段出錯:

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(必須是小寫,大寫試了下報錯),或者是將待查詢的字段單獨(dú)封裝成一個實(shí)體,new 實(shí)體

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

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

相關(guān)文章

  • 淺談vue中子組件傳值的默認(rèn)值情況

    淺談vue中子組件傳值的默認(rèn)值情況

    這篇文章主要介紹了淺談vue中子組件傳值的默認(rèn)值情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 在Java項(xiàng)目中實(shí)現(xiàn)日志輸出的技巧分享

    在Java項(xiàng)目中實(shí)現(xiàn)日志輸出的技巧分享

    日志是開發(fā)過程中不可或缺的一部分,它可以幫助我們追蹤代碼的執(zhí)行過程、排查問題以及監(jiān)控系統(tǒng)運(yùn)行狀況,然而,大多數(shù)開發(fā)人員在編寫日志時往往只關(guān)注于輸出必要的信息,而忽略了日志的可讀性和美觀性,本文將介紹如何在Java項(xiàng)目中實(shí)現(xiàn)漂亮的日志輸出
    2023-10-10
  • SpringBoot?Bean實(shí)例化流程解析

    SpringBoot?Bean實(shí)例化流程解析

    在SpringBoot啟動過程中會執(zhí)行refreshContext()方法,而在其執(zhí)行過程中,又會調(diào)用finishBeanFactoryInitialization()方法,該方法負(fù)責(zé)了Bean的實(shí)例化,那么本文將從源碼跟讀的角度來解析一下具體流程
    2023-08-08
  • idea項(xiàng)目debug模式啟動,斷點(diǎn)失效,斷點(diǎn)紅點(diǎn)內(nèi)無對勾問題及解決

    idea項(xiàng)目debug模式啟動,斷點(diǎn)失效,斷點(diǎn)紅點(diǎn)內(nèi)無對勾問題及解決

    這篇文章主要介紹了idea項(xiàng)目debug模式啟動,斷點(diǎn)失效,斷點(diǎn)紅點(diǎn)內(nèi)無對勾問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue3使用vue-diff工具來比較數(shù)據(jù)差異

    vue3使用vue-diff工具來比較數(shù)據(jù)差異

    這篇文章主要為大家詳細(xì)介紹了vue3如何使用vue-diff工具來比較數(shù)據(jù)差異,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • spring中實(shí)現(xiàn)容器加載完成后再執(zhí)行自己的方法

    spring中實(shí)現(xiàn)容器加載完成后再執(zhí)行自己的方法

    這篇文章主要介紹了spring中實(shí)現(xiàn)容器加載完成后再執(zhí)行自己的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 基于Java實(shí)現(xiàn)獲取本地IP地址和主機(jī)名

    基于Java實(shí)現(xiàn)獲取本地IP地址和主機(jī)名

    這篇文章主要介紹了基于Java實(shí)現(xiàn)獲取本地IP地址和主機(jī)名,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Java實(shí)現(xiàn)簡單的郵件發(fā)送功能

    Java實(shí)現(xiàn)簡單的郵件發(fā)送功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡單的郵件發(fā)送功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Java?超詳細(xì)講解SpringMVC攔截器

    Java?超詳細(xì)講解SpringMVC攔截器

    Spring?MVC?的攔截器(Interceptor)與?Java?Servlet?的過濾器(Filter)類似,它主要用于攔截用戶的請求并做相應(yīng)的處理,通常應(yīng)用在權(quán)限驗(yàn)證、記錄請求信息的日志、判斷用戶是否登錄等功能上。本文將代碼演示和文字描述詳解攔截器的使用
    2022-04-04
  • spring boot task實(shí)現(xiàn)動態(tài)創(chuàng)建定時任務(wù)的方法

    spring boot task實(shí)現(xiàn)動態(tài)創(chuàng)建定時任務(wù)的方法

    這篇文章主要介紹了spring boot task實(shí)現(xiàn)動態(tài)創(chuàng)建定時任務(wù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01

最新評論

龙里县| 大兴区| 新田县| 镇康县| 邓州市| 金华市| 阳新县| 哈尔滨市| 札达县| 青铜峡市| 张家界市| 彰武县| 博湖县| 德钦县| 浦东新区| 岱山县| 华亭县| 平和县| 兴文县| 临湘市| 永和县| 汨罗市| 丰都县| 藁城市| 新巴尔虎左旗| 宜兴市| 桂阳县| 平利县| 滨海县| 集安市| 镇江市| 原阳县| 白沙| 乌拉特后旗| 临夏市| 右玉县| 盘山县| 基隆市| 乌海市| 镇宁| 怀集县|