Jpa封裝了很友善的查詢機制,但是有事查詢問題複雜多變,難免要用到原生sql進行查詢,這時就要用到EntityManager擷取Query進行查詢
首先通過注解獲得EntityManager的執行個體
然後通過它加上生成的sql語句和要擷取的類型生成query,再通過query取出查詢出來的List集合結果... (查詢結果還可以是其它類型)
正常情況下,查詢都是沒問題的。但是,我對新建立的資料庫表查了幾條資料,發現查詢不出來結果,打了斷點檢視取出的List集合提示“All elements are null”,但是我用生成的sql語句在資料庫軟體上直接查詢明明沒問題的。
在網上檢視有的是因為字段大小寫問題,有的是因為駝峰命名問題,但是我一一用了都沒有效果。
我自己研究了好一會才發現,我傳回的資料主鍵是空的,我是用的一個area在實體類标注了@Id作為主鍵,但是這個我做查詢的時候并沒有值,是以就出現了這個問題。給主鍵賦上值,再查詢就OK了。。。