grails - Grails如何与SQL Server数据库正确地一对多映射

标签 grails mapping gorm one-to-many hibernate-mapping

我有两个域类,它们之间的关系是1对多。我知道如何将每个类的列分别映射到它们各自的表,但是如何映射MSSQL数据库中存在的关系?没有联接表,我只有只读访问权限。我浏览了Grails文档的各个页面,这就是我目前的位置(一个学生有很多类(class))。在我的表中,将两个表联系在一起的外键在“类(class)”表中。

class StudentHeader { //on the one side
    String stuNo
    String stuName
    String stuStreet

    static mappedBy = [refs: "fkCustNo"]

    static hasMany = [refs: CourseHeader]
    static constraints = {
    }

    static mapping = {
        table name: "[tbl_Students]", schema: "[dbo]", catalog: "[CRD].[CourseTrak]"
        version false
        id generator: 'assigned', name: 'stuNo'
        stuNo column: '[PK_StudentNo]'
        stuName column: '[Student_Name]'
        stuStreet column: '[Student_Street]'


    }
}

class CourseHeader { //on the many side
    String courId
    String courName
    StudentHeader fkCourNo
    static constraints = {
    }

    static mapping = {
        table name: "[tbl_Courses]", schema: "[dbo]", catalog: "[CRD].[CourseTrak]"
        version false
        id generator: 'assigned', name: 'courId'
        courId column: '[PK_CourseId]'
        courName column: '[Course_Name]'
        fkCourNo column: '[FK_CourseNo]'


    }
}

作为测试,这是我尝试访问学生类(class)的方式
StudentHeader.first().refs

最佳答案

我相信我已经解决了。对于许多方面的域类,您需要将insert和updateable设置为false,如下所示(“许多”域中的对象字段必须具有与appedBy中的键/值对相同的值):

class StudentHeader{
static mappedBy = [refs: "fkCustNo"]
}

class CourseHeader { //on the many side
    String courId
    String courName
    StudentHeader fkCustNo
    static constraints = {
    }

    static mapping = {
        table name: "[tbl_Courses]", schema: "[dbo]", catalog: "[CRD].[CourseTrak]"
        version false
        id generator: 'assigned', name: 'courId'
        courId column: '[PK_CourseId]'
        courName column: '[Course_Name]'
        fkCustNo column: '[FK_CourseNo]', insertable: false, updateable: false


    }
}

关于grails - Grails如何与SQL Server数据库正确地一对多映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49498276/

相关文章:

来自桌面应用程序的 url 重定向的 Grails spring 安全问题

python - 映射 numpy 数组中的值

Python将包含列表的字典对象转换为包含字典的列表

grails - Grails/GORM是否可以在不执行N + 1查询的情况下过滤关联结果?

grails - 保存时发生Grails DB错误(没有域或没有标识符。)

grails - 在 Grails 中注入(inject) grails-app 类

mysql - 从表中查找不匹配的用户

powerbi - 如何在 map 上显示距离我最近的 3 个竞争对手?

grails - 将SQL查询转换为GORM条件