1
对我的生活中的关系,我似乎无法得到关系,与Grails的映射表工作。我有两个域,我试图加入,资源和磁带。一个资源可以有许多盒子。Grails的静态映射表
如果我运行下面用脚手架的代码我得到“未知列在‘字段列表’this_.cassette_id'”的错误。如果我尝试在映射中定义cassette_id,那么在编译时会出现致命错误。
任何明智的Grails向导可以让我在正确的道路上,我是新来这一点,并试图几乎想尽方法,我可以找到使这一有效的。
//resource definition
package edu.place.project
class Resource {
String title
String number
String type
Cassette cassette
static hasMany = [cassette : Cassette ]
static mappedBy = [cassette : "hvt"]
static mapping = {
table "Resources"
version false
columns {
id column : "resourceIdentifier2"
title column: "title"
number column: "extentNumber"
type column: "extentType"
}
}
static constraints = {
}
}
//Cassette definition
package edu.place.project
class Cassette {
String id
String type
String numCode
String hvt
static belongsTo = Resource
static mapping = {
table "ArchDescriptionInstances"
version false
columns {
id column : "barcode", type : String
type column : "userDefinedString2"
numCode column : "container1AlphaNumIndicator"
hvt column : "userDefinedString1"
}
}
static constraints = {
barcode(unique : true)
}
}
好了,这工作,在资源领域的负荷了,但是当我选择一个资源,我面临着一个新的错误:“异常消息:表‘fortunoff.Resources_ArchDescriptionInstances’不存在”的ArchDescriptionInstances表表由盒表映射。如果我现在还没有感到困惑。 – awfulHack 2010-09-22 14:44:50
既然你已经设置了'hasMany'两者之间,需要的Grails的映射表来存储对象之间的关系。我以前没有尝试过这样做,所以我可能在这里没有太多帮助。您可能不得不在映射中明确声明连接表。但是,您尝试使用的数据库模型看起来有点不标准,所以我不确定它将如何工作。 http://www.grails.org/doc/latest/ref/Database%20Mapping/joinTable.html – 2010-09-22 17:01:24