将sql.GroovyRowResult转换为两列进行映射

时间:2014-01-30 10:17:12

标签: groovy

我有一个groovy GroovyRowResult(使用sql.rows)有两列。第一列在sql中有一个group by,所以它总是唯一的。

现在我想将整个结果转换为一个映射,其中包含第一列值作为键,第二列值作为值。我知道我可以为每一行执行此操作(见下文),但是想知道是否有更好的aproeach。我发现的唯一的东西是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()方法。

1 个答案:

答案 0 :(得分:4)

你可以这样做:

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