grails - 如何使用 List<Double> 填充 Grails 域类

标签 grails grails-orm

我必须使用 Grails 4 创建一个应用程序。目前,没有数据库,它都在内存中。

我想要的只是一个模块可以包含一个代表成绩的 double 列表。

域类Module.groovy :

package myapp

import grails.rest.Resource

@Resource(uri='/module', formats = ['json', 'xml'])
class Module {
    String title
    String description
    int semesterID
    List<Double> grades;
    double finalGrade


    static constraints = {
        title blank:false
        description blank:false
        semesterID blank:false
    }
}

要开发应用程序,我想使用填充对象。所以我在 BootStrap.groovy 中初始化了一些:
class BootStrap {

    def init = { servletContext ->
        //Create default Modules
        new Module(title: "WebeC", description: "Web Engineering", semesterID: 1).save()
        new Module(title: "WebeC", description: "Web Engineering", semesterID: 2).save()
        new Module(title: "ism", description: "Information Security Management", semesterID: 2).save()
    }
    def destroy = {
    }
}

到目前为止一切都很好,但是当我尝试填写成绩时我失败了。
我已经尝试过的事情:(全部在 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()

输出始终相同:
[{"id":1,"title":"WebeC","semesterID":1,"grades":[],"description":"Web Engineering","finalGrade":0.0}, ...]

这只是语法问题还是我的整个方法都错了?
非常感谢你

最佳答案

您必须添加 hasMany您域中的静态属性:

static hasMany = [grades: Double]

然后你应该能够用以下内容填充成绩:
new Module(title: "WebeC", description: "Web Engineering", semesterID: 1, grades: [4.0, 5.5, 3]).save()

BootStrap您必须在事务中保存域:
Module.withTransaction { status ->
     Module module = new Module(name: "name1", grades: [4.0, 5.5, 3])
     module.save(flush: true)
}

关于grails - 如何使用 List<Double> 填充 Grails 域类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59078300/

相关文章:

grails - 在Intellij上运行Grails 3应用

mysql - mysql 的 maxSize 为 25000 的 grails 2.3.1 问题

hibernate - 访问 grails/hibernate 为域类生成的 SQL

grails - grails 中的自定义验证消息

java - 如何将外部库 (libs) 集成到 grails 项目中?

java - 使用 Castor 和 Grails 进行 XML 解码

grails - 如何自动将在 resources.groovy 中声明的 Grails 组件注入(inject)到我的 IntegrationSpecs 中?

grails - 从禁用的输入中删除数据

grails - 迁移后验证 GORM 模型

database - Grails 自动约束更新