GORM 基本理解问题

GORM Basic undestandig problems

我正在尝试了解 GORM 的工作原理。 为包含建筑和建筑部分(伟大建筑的区域)的项目构建数据库无法按照我想要的方式工作。我想要的是:每个项目都有一栋建筑和该建筑的建筑部分之一。

我这样试过:

class Project {
    String name
    static hasOne = [building: Building]
    Buildingpart buildingpart
    String toString(){
        return name
    }
}

class Building {
    String name
    static hasMany = [projects: Project, buildingparts: Buildingpart]
    String toString(){
        return name
    }
}

class Buildingpart {
    String buildingpart
    static belongsTo = [building: Building]
    String toString(){
        return buildingpart
    }
}

这样做会为我提供每个建筑部分的下拉菜单,而不仅仅是选择建筑中的那些。 我很乐意提出任何建议。

设计看起来不错 你可能需要在 Building class 中添加一个额外的钩子,比如

Buildingpart getCurrentPart(Buildingpart buildingPart) {
return  this.buildingparts.find{buildingPart}
}

然后

Project project = project.get(id)



 println "project building = ${project.building}"
   println "project buildingparts = ${project.building.buildingparts}"
   println "project currentpart = ${project.building.getCurrentPart(project.buildingpart)}"

当你说你的 select 框时,这对我来说毫无意义,因为对我们这里的人来说,我们不知道这一切意味着什么在你的项目 class 中还有一个注释,它被称为 :

Bauteil buildingpart

那么你有很多buildingparts: Buildingpart]

您需要注意的是 println 中发生的绑定,如下所示:

当您随后从项目中查询对象的构建部分时

project.building.getCurrentPart(project.buildingpart)