2012-08-13 49 views
0

另一个新手问题。我有一种情况,我必须在groovy中为域类属性赋值。GORM/groovy自动将字符串转换成各种对象

该代码是

比照 “$ it.key”= it.value

属性类型为比照 “$ it.key” 可以是整型,长整型或字符串 - 但it.value总是一个String。我已经看到,当比较“$ it.key”是整型或长时,groovy将它转换为ascii值(例如,如果它的值是“6”,参见“$ it.key”变为54,它是“7”,它变成55等等)。截至目前,我已通过引入如下所示的检查方法来解决该问题。但是想知道是否有更好的解决方案。

   if (it.value.isInteger()){ 
        cf."$it.key" = new Integer(it.value) 
       } 
       else if (it.value.isLong()){ 
        cf."$it.key" = new Long(it.value) 
       } 

感谢

回答

0

假设你通过地图迭代,你应该能够use bindData,即

bindData(cf, map) 

请务必阅读文档的那款,虽然,因为存在安全隐患