欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

SpringJPArepositorynativeQuery如何自定義返回對象Projection

SpringJPA repository nativeQuery如何自定義返回對象Projection ,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)是一家專業(yè)提供晉州企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都做網(wǎng)站html5、小程序制作等業(yè)務(wù)。10年已為晉州眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

Spring JPA 封裝的一套CRUD的操作大大簡化了開發(fā)流程,提高了開發(fā)效率。但是不免會(huì)有一些特殊查詢,需要自己寫sql,返回自定義字段,需要用自定義的對象接收,有什么好的方法呢?

 通過網(wǎng)上查詢大多數(shù)其他人的解決方案,找到了官網(wǎng)對應(yīng)的文檔:https://www.baeldung.com/spring-data-jpa-projections

簡單的來說就是 在repository 里邊自定義的方法 ,在需要用自定義對象接收時(shí),需要接收對象問interface 類型,并且 里邊定義了所需要接收字段的get方法,比如需要接收name字段,需要定義 String getName(); 

@Repository
public interface ItemRepository extends JpaRepository<Item, Integer>{

    /**
     * 批量查詢用戶時(shí)間段內(nèi) 總分
     */
    @Query(nativeQuery = true, value = "select user_info_id userId, sum(score_val) score FROM tb_item where is_del = 0 and `status` = 1 and user_info_id in (:userIds) and end_date BETWEEN :startDate and :endDate GROUP BY user_info_id")
    List<ItemProjection> sumUserScore(@Param("userIds") List<Integer> userIds, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
}

//自定義的接收對象
//ItemProjection:
public interface ItemProjection {
    Integer getUserId();
    BigDecimal getScore();
}

非常的清晰明了,這是網(wǎng)絡(luò)上最常用的,也是比較簡單的一種解決方案

當(dāng)然了還有一種我自己的解決方案(至少我沒從網(wǎng)上搜到~_~)

就是自定義converter ,想使用什么接收就使用什么接收!因?yàn)檫@個(gè)方案是在 連一個(gè)interface都不想建的“懶惰”的程序員的吐槽下剛誕生不久,就不在這里說了。

關(guān)于SpringJPA repository nativeQuery如何自定義返回對象Projection 問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

本文題目:SpringJPArepositorynativeQuery如何自定義返回對象Projection
鏈接分享:http://chinadenli.net/article44/pgpsee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作網(wǎng)站建設(shè)標(biāo)簽優(yōu)化網(wǎng)站制作品牌網(wǎng)站制作網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)