我试图将Groovy闭包(allegedly serializable)保留为我的Grails域对象之一的属性。目前,我基本上正在这样做:

class MyClass {
    ....
    Closure myClosure
    static mapping = { myClosure size: 1024 * 1024, type: 'blob' }
}
new MyClass(myClosure: { ... do some stuff .. }.dehydrate()).save()

我试图将“blob”更改为“binary”,但这不起作用。我收到类似以下错误:
context.GrailsContextLoader执行 bootstrap 时出错:BootStrap $ _obj_closure3无法转换为java.sql.Blob

我应该如何设置域对象以便能够存储闭包?

我在Groovy 2.0中使用Grails 2.1.1

最佳答案

我需要这个:

static mapping = {
    myClosure sqlType: 'blob'
}

08-27 13:58