我有一个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()方法。
答案 0 :(得分:4)
你可以这样做:
def myMap = result.collectEntries {
[ it.column1, it.column2 ]
}