jpa中將查詢的字段返回為Map鍵值對型別

2022-08-18 19:06:11 字數 910 閱讀 5976

由於最近的乙個專案技術選型用了jpa,在使用過程中,感覺jpa對map這種型別著實有點不相容。

問題:只想查詢表中個別字段,並將這些字段封裝為鍵值對map的形式返回給前端

如果對返回的結果不做任何處理,返回的結果是這樣的:

[[1,

"張三"],[2,

"李四"],[3,

"王二"]

]

但是,這明顯不是我想要的結果,我理想中的結果應該是這樣的:

[,,

,]

所以我一直在搜 jpa 怎樣能把返回的結果裝配成這種,但是一直沒有搜到我想要的結果。直到我發現自己走進去了乙個誤區,我一直在想怎麼將 list 轉換為map,

但是轉為 map 之後,每乙個欄位又都是游離的,不能像存放乙個 object 一樣。我忽然意識到一種辦法,list--->map--->list,下面直接上**。

list list = null

;list

arraylist = null

;

for (int i=0;i)

else

}query query =entitymanager.createnativequery(string.valueof(sql));

list =query.getresultlist();//這上面的**可以不用看,只是 jpa 對in的相容也不是很好,所以我使用了nativesqlarraylist = new arraylist<>();

for(object obj : list)

足厚返回的結果:

,,],

"extra": null

}

sql中查詢型別為int的字段,返回null的異常

專案中用mybatis3.x,用sql查詢某個表型別為integer的字段,那個表是空表,沒有資料,結果拋異常了,原因是在物件中的屬性為int,空表時,sql查詢出來的是null,結果賦值時拋異常了。拋這樣的異常。解決這個問題,是當查出來為null時,給乙個預設值,如 0。mysql select ...

不返回前端為null的字段

對於返回給前端的json格式資料,我們只使用了其中部分資料,其他資料沒有使用上,但是也響應出來了,一方面 觀,第二方面占用頻寬。舉個例子 專案中常常使用model進行資料互動,假如有user這樣乙個model,傳給前端的json物件是這樣 實際上前端只需要id和name,其他都是多餘的,後端只是為了...

JackSon返回值為null的字段

說實話這個問題真的讓我頭疼,最終想到乙個投機取巧的方法,下面且聽我一一道來。背景jackson default property inclusion non null其實人家的這個要求也很合理,但是web團隊有些資料是否展示的邏輯是根據api是否返回該字段來控制的,如果不返回欄位就不顯示了,所以就出...