2014-01-30 69 views
0

我有一個groovy GroovyRowResult(使用sql.rows)與兩列。第一列在sql中有一個group,所以它將始終是唯一的。用兩列轉換sql.GroovyRowResult來映射

現在我想將整個結果轉換爲一個映射,其中包含第一列值作爲鍵和第二列值作爲值。我知道我可以對每一行都做到這一點(見下文),但想知道是否有更好的答案。我發現的唯一的事情是entrySet(),它沒有工作。錯誤是:

Message: No signature of method: 
java.util.ArrayList.entrySet() is applicable for argument types:() values: []) 

所以,我的每一行的辦法是:

def myMap = [:] 
result.each { 
    myMap.put(it.colum1, it.column2) 
} 

另一種方法是,使的方式查詢將返回我的地圖與第一列作爲關鍵第二個作爲值(或整行作爲值)。一種Zend框架fetchAssoc()方法。

回答

4

你可以這樣做:

def myMap = result.collectEntries { 
    [ it.column1, it.column2 ] 
}