【问题标题】:Saving data with table associations in Grails在 Grails 中使用表关联保存数据
【发布时间】:2022-01-19 14:20:08
【问题描述】:

我有两个数据库表“学生”和“课程”。我想要一个一对一的关系,其中“学生”表中有“课程”表的外键。外键“course_id”出现在学生表中,但每当我尝试保存学生数据(填写表格后)时,数据不会被保存,也没有错误。我对 grails 很陌生。请指导我如何正确保存数据。

表结构符合要求,但数据未保存到数据库中。其他代码部分没有问题,因为当我删除两个表之间的关联时数据正在保存。

学生管理员

package com.grails

class studentController {
    def save(Student student){
        student.save()
    }
}

学生领域类

class Student {
    Course course

    String firstName
    String lastName
}

课程领域类

class Course{
    String course_name
    String duration

    static hasOne = [student: Student]

    //static belongsTo = [student: Student]
}

【问题讨论】:

  • 您可以使用标志failOnError 调用save,例如student.save(failOnError: true).
  • 感谢您的回答,我将其与 try catch 块一起应用,发现存在阻止 save() 的验证错误。我修改了我的关联,现在它工作正常:)

标签: database model-view-controller grails groovy grails-orm


【解决方案1】:

请注意,grails 4 引入了一对一关系的错误,该错误会根据关系的拥有方提供不一致的行为:https://github.com/grails/grails-core/issues/11606

我不确定如果没有更多关于错误的信息,或者即使您使用的是此版本的 grails,这是否与您看到的问题相同。

【讨论】:

  • 我正在使用 grails 3。我已经解决了由控制器中发生的验证错误引起的问题。但是感谢您通知 grails 4 中的错误,这对我使用版本 4 时会有所帮助
猜你喜欢
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多