我需要從帶有 hashmap 的資料庫中匯入資料。有一個表媒體,我需要獲取 media_id(整數)和 media_path(字串)。在此之前,我只是像這樣匯入媒體 ID:
private List<Integer> getMedias() {
final String queryString = "SELECT media_id from media where XXX ..."
final Query query = App.getCurrentSession().createSQLQuery(String.valueOf(queryString));
query.setString("xxx", xxx);
query.setDate("xxx", xxx);
query.setDate("xxx", xxx);
return query.list();
現在,我想做更多這樣的事情:
private HashMap<Integer, String> getMedias() {
final String queryString = "SELECT media_id, media_path from media where XXX ..."
問題是我不知道如何使用 SQL 查詢來從資料庫中獲取哈希圖。
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
我認為沒有辦法開箱即用。您需要轉換結果:
List<Object[]> queryResults = query.list();
Map<Integer, String> resultAsMap = new HashMap<>();
for(Object[] row : queryResults) {
resultAsMap.put((Integer)row[0], (String)row[1]);
}
return resultAsMap;
或者您可以使用流:
List<Object[]> list = query.list();
Map<Integer, String> resultAsMap = list
.stream()
.collect( Collectors.toMap( row -> (Integer) row[0], row -> (String) row[1] ) );
return resultAsMap;
或者,您可以使用 ResultTransformer 回傳 DTO 串列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/494640.html