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

          問(wèn)題:
          1:如果用jpql方式查詢并且@Query的查詢語(yǔ)句只查詢某幾個(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ù)雜查詢,就使用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)查詢,讓時(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) 完成分組查詢!

          將以上sql粘帖到@Query(value="",nativeQuery=true)里面,返回值就能正常返回List<泛型>
          posted on 2017-11-17 00:50 朔望魔刃 閱讀(1118) 評(píng)論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 耿马| 赞皇县| 夏邑县| 个旧市| 岚皋县| 临沂市| 玛曲县| 汶上县| 行唐县| 安化县| 承德市| 兴化市| 赤壁市| 时尚| 徐汇区| 辉县市| 屯昌县| 准格尔旗| 连平县| 时尚| 乌鲁木齐县| 曲水县| 武功县| 岐山县| 岗巴县| 阿瓦提县| 巧家县| 溆浦县| 武安市| 米林县| 嘉善县| 黔西县| 南汇区| 玉树县| 泗阳县| 武穴市| 隆子县| 收藏| 唐海县| 深州市| 蚌埠市|