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)
我正在尝试了解 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)