隨筆-95  評(píng)論-31  文章-10  trackbacks-0
          spring data jpa也知道自己復(fù)雜查詢(xún)應(yīng)付不了,所以給了nativeQuery=true的方式,也就是原生sql查詢(xún)

          問(wèn)題:
          1:如果用jpql方式查詢(xún)并且@Query的查詢(xún)語(yǔ)句只查詢(xún)某幾個(gè)屬性字段
               eg:  select u.userName,u.password,u.email from UserInfo u  如果是這種方式,那么返回值就是List<Object[]>,而不是List<UserInfo> 
               eg:  select u from UserInfo u  如果是這種方式,那么返回值就是List<UserInfo>
               
               so 很藍(lán)瘦香菇!!~

          所以復(fù)雜查詢(xún),就使用nativeQuery=true,直接寫(xiě)原生sql,并且返回值能直接映射成List<UserInfo> 而不是List<Object[]>

          2:數(shù)據(jù)分組并獲取每組最新時(shí)間的那條記錄,思路:
             1) 首先select *,max(createTime) from A  group by name,(這個(gè)時(shí)候name已經(jīng)做了分組,同時(shí)攜帶最新時(shí)間,剩下要做的就是級(jí)聯(lián)查詢(xún),讓時(shí)間等于最新時(shí)間,name等于不同組的name)  
             2) 其次select a.* from A  a inner join  (select *,max(createTime)  i_createTime from A  group by name) result  where  a.name=result.name  and a.createTime=result.i_createTime 
             3) 完成分組查詢(xún)!

          將以上sql粘帖到@Query(value="",nativeQuery=true)里面,返回值就能正常返回List<泛型>
          posted on 2017-11-17 00:50 朔望魔刃 閱讀(1118) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): java
          主站蜘蛛池模板: 奉节县| 开封市| 平安县| 重庆市| 利津县| 丘北县| 长沙市| 石门县| 凌云县| 深州市| 陆川县| 逊克县| 昭苏县| 孟连| 南漳县| 蓬安县| 潍坊市| 武强县| 石台县| 祁东县| 申扎县| 隆安县| 驻马店市| 开封市| 哈尔滨市| 隆尧县| 礼泉县| 庆元县| 卫辉市| 闵行区| 高邮市| 外汇| 西充县| 会昌县| 塔河县| 五大连池市| 遂宁市| 包头市| 密云县| 张家港市| 慈溪市|