GORM의 작동 방식을 이해하려고합니다. 건물과 건물이있는 프로젝트 (훌륭한 건물의 영역)를위한 데이터베이스를 구축하는 것은 내가 원하는 방식으로 작동하지 않습니다. 내가 원한 것은 각 프로젝트마다 하나의 건물과 그 건물의 건물 중 하나가 있다는 것입니다. 그런 식으로 모든 buildingpart에 대해 나에게 dropdownmenu를 제공하고 selectet 건물에서뿐만 아니라 사람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
}
}
그 일 :
나는 그런 식으로했습니다. 나는 어떤 제안이라도 기쁠 것이다. 당신은 아마 그런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)}"
같은 Building
클래스 뭔가를 추가 후크가 필요
귀하의 도메인 모델 중 아무것도 buildingpart가 건물의 건물 부분이어야한다고 명시하지 않습니다. 이를 확인하기 위해 사용자 정의 유효성 검사를 추가 할 수 있습니다. 드롭 다운까지는 올바른지 확인하는 것이 좋습니다. –
@James Kleeh : 비록 정적 인 belongsTo = [building : Building]은 그렇게합니다. –
아니요, 그렇지 않습니다. Buildingpart의 belongsTo와 Project의 hasOne은 다른 속성입니다. –