Поведение Groovy по умолчанию выдает groovy.lang.MissingPropertyException
всякий раз, когда вы пытаетесь установить значение для свойства, которое не существует в bean-компоненте. Я не совсем уверен, сможете ли вы изменить это поведение. Однако вы можете написать вспомогательный метод, который отфильтровывает несуществующие свойства.
def filterResult(bean, row) {
def filteredProps = [:]
row.each { key, value ->
if(bean.metaClass.properties.find { prop -> prop.name == key }) {
filteredProps.put(key, value)
}
}
filteredProps
}
def var = []
sql.eachRow("select * from Products", {
var << new Product(filterResult(Product, it.toRowResult()))
})