之前在項目中使用的Spring的jdbcTemplate直接執行sql語句的,由於客戶方要求sql全部寫到hibernate配置文件,則改用Hibernate的Query執行SQL語句,從文件讀取。最終查詢結果使用阿里巴巴的fastjson轉換json,這樣就需要標準的List<Map>纔可以,但Hibernate使用Query.list()獲取到的結果集,調試查看可以看到是List<Object>類型的,轉換JSON全部變成了數組,而且只有值,沒有鍵。
在網上查找資料,發現Hibernate查詢可以直接設置結果值類型爲List<Map<String,Object>>,方法是在執行query.list()或者其他查詢方法之前,
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);