在Groovy中设置bean,你只需要在创建对象时给出GroovyRowResult。
请考虑以下People.groovy bean:
class People {
String name
int age
}
我的SQL查询:
select * from People -- returns name and age of people
GroovyRowResult以大写字母的名称(键)返回:[NAME:“Alex”,AGE:21]。 所以当我尝试像下面那样设置bean时:
le.rows(sqlQuery).each {
People p = new People(it)
}
我收到例外:
groovy.lang.MissingPropertyException: No such property: NAME for class: People. Possible solutions: name
我想我可以修改sql查询以在别名中包含双引号,但你们有没有处理过它?
答案 0 :(得分:0)
rows()方法返回List<GroovyRowResult>
GroovyRowResult
实现Map
,然后您可以应用collectEntries
对其进行转换,以便键是小写的,您可以使用生成的地图:
sql.rows('select * from people').each {
People p = new People(it.collectEntries { k,v -> [k.toLowerCase(), v] })
println p.name
println p.age
}