如何使用列表填充Grails域类

如何使用列表填充Grails域类,grails,gorm,Grails,Gorm,我必须用Grails4创建一个应用程序。现在,没有数据库,都在内存中 我想要的是,一个模块可以保存一个代表成绩的双倍表 域类Module.groovy: 到目前为止还不错,但当我尝试填充分数时失败了。 我已经尝试过的东西:都在BootStrap.groovy中 //test 1 new Module(title: "WebeC", description: "Web Engineering", semesterID: 1, grades: [4.0, 5.5, 3]).save() //te

我必须用Grails4创建一个应用程序。现在,没有数据库,都在内存中

我想要的是,一个模块可以保存一个代表成绩的双倍表

域类Module.groovy:

到目前为止还不错,但当我尝试填充分数时失败了。 我已经尝试过的东西:都在BootStrap.groovy中

//test 1
 new Module(title: "WebeC", description: "Web Engineering", semesterID: 1, grades: [4.0, 5.5, 3]).save()

//test 2
new Module(title: "WebeC", description: "Web Engineering", semesterID: 1, grades: {[4, 5, 6]}).save()

// test 3
 def List<Double> temp = [4.0, 5.5, 3]
 new Module(title: "WebeC", description: "Web Engineering", semesterID: 1, grades: temp).save()
这只是一个语法问题,还是我的整个方法都错了? 非常感谢

您必须在域中添加许多静态属性:

static hasMany = [grades: Double]
然后,您应该能够使用以下内容填充等级:

new Module(title: "WebeC", description: "Web Engineering", semesterID: 1, grades: [4.0, 5.5, 3]).save()
在引导中,您必须在事务中保存域:

Module.withTransaction { status ->
     Module module = new Module(name: "name1", grades: [4.0, 5.5, 3])
     module.save(flush: true)
}

您必须在域中添加许多静态属性:

static hasMany = [grades: Double]
然后,您应该能够使用以下内容填充等级:

new Module(title: "WebeC", description: "Web Engineering", semesterID: 1, grades: [4.0, 5.5, 3]).save()
在引导中,您必须在事务中保存域:

Module.withTransaction { status ->
     Module module = new Module(name: "name1", grades: [4.0, 5.5, 3])
     module.save(flush: true)
}


安德烈·布津克西的回答是正确的。要使用REST Api,视图下缺少一个文件:


model{
    Module module
}

json g.render(module, [expand: ['grades'], resolveTemplate: false])
我还稍微更改了BootStrap.groovy:


安德烈·布津克西的回答是正确的。要使用REST Api,视图下缺少一个文件:


model{
    Module module
}

json g.render(module, [expand: ['grades'], resolveTemplate: false])
我还稍微更改了BootStrap.groovy:


那是行不通的。仍然获得相同的输出[{id:1,title:WebeC,semesterID:1,grades:[],description:Web Engineering,finalGrade:0.0},…]您是如何获得此json输出的?我已经测试过,module.grades返回正确的列表,module也是grails.converters.JSON。我通过REST-API localhost:8080/module获得了输出。我在BootStrap.groovy文件中所做的所有其他更改都正确显示。@Geryones,在非事务模式下保存列表时出现问题。检查我的更新答案。这不起作用。仍然获得相同的输出[{id:1,title:WebeC,semesterID:1,grades:[],description:Web Engineering,finalGrade:0.0},…]您是如何获得此json输出的?我已经测试过,module.grades返回正确的列表,module也是grails.converters.JSON。我通过REST-API localhost:8080/module获得了输出。我在BootStrap.groovy文件中所做的所有其他更改都正确显示。@Geryones,在非事务模式下保存列表时出现问题。检查我的最新答案。