【问题标题】:How do Grails dynamic finders handle types?Grails 动态查找器如何处理类型?
【发布时间】:2014-03-13 18:55:46
【问题描述】:

当我给 Grails 动态查找器指定错误类型时,我有点困惑。

例如,如果我有课程Foo

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

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

是将这些字符串值直接传递给数据库(由于类型不匹配可能会忽略有价值的索引)还是 Grails 会自动转换类型?

【问题讨论】:

  • Groovy 正在为您将它们转换为 Long 值。
  • @JoshuaMoore 您可以发表您的评论作为答案并对其进行扩展吗?

标签: grails grails-orm


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多