Grails动态查找器如何处理类型?

时间:2014-03-13 18:55:46

标签: grails gorm

当我向Grails动态查找器提供错误的类型时,我对发生的事情感到有点困惑。

例如,如果我有课程Foo

class Foo {
    //long id (implicit id is a long)
    Long barValue
}

我这样做,Foo.findByIdAndBarValue('1', '2'),我得到了一个结果,但我对这里的字符串值感到困惑。

是否将这些字符串值直接传递给db(由于类型不匹配而可能忽略有价值的索引),或Grails是否自动转换类型?

1 个答案:

答案 0 :(得分:1)

将参数传递给Grails域类的动态查找器时,会动态输入参数。这允许Groovy进行自动类型转换。

在您的示例中,Groovy发现barValue的类型为Long,并且将String值转换为Long。

JN3015-Types通过一些示例进一步解释了Groovy的这种行为。