[英]Grails: how to define a master-detail view with grails constraints
I want to create a simple master/detail view with these tables: 我想用这些表创建一个简单的主视图/详细视图:
create table MASTER_ID2
(
ID int not null,
VALOR varchar(40),
primary key (ID)
);
create table DETAIL_ID2
(
ID int not null,
ID_MASTER int not null,
VALOR_DET char(40),
primary key (ID)
);
alter table DETAIL_ID2 add constraint FK_RDET5 foreign key (ID_MASTER)
references MASTER_ID2 (ID) on delete restrict on update restrict;
I have these domain classes: 我有这些域类:
class MasterId2 {
Integer id
String valor
//
static hasMany = [details : DetailId2]
static mapping = {
table 'master_id2'
version false
id generator:'identity', column:'ID'
//
details column: 'id_master'
}
static constraints = {
id(max: 2147483647)
valor(size: 0..40)
}
String toString() {
return "${id}"
}
}
class DetailId2 implements Serializable {
Integer id
Integer id_master
String valor_det
//
MasterId2 master
static belongsTo = MasterId2
static mapping = {
table 'detail_id2'
version false
id generator:'identity', column:'ID'
}
static constraints = {
id(max: 2147483647)
valor_det(size: 0..40)
}
String toString() {
return "${id}"
}
}
But the detail view doesn't assign a foreign key. 但是细节视图不会分配外键。
What is wrong in my code? 我的代码有什么问题?
i make this changes 我做这个改变
class MasterId2 { 类MasterId2 {
Integer id
String valor
//
static hasMany = [details : DetailId2]
static mapping = {
table 'master_id2'
// version is set to false, because this isn't available by default for legacy databases
version false
id generator:'identity', column:'ID'
//
details column: 'id_master'
} }
static constraints = {
id(max: 2147483647)
valor(size: 0..40)
}
String toString() {
return "${id}"
}
} }
class DetailId2 implements Serializable { 类DetailId2实现了Serializable {
Integer id
Integer id_master
String valor_det
//
//MasterId2 master
//static belongsTo = MasterId2
static belongsTo = [master: MasterId2]
static mapping = {
table 'detail_id2'
// version is set to false, because this isn't available by default for legacy databases
version false
id generator:'identity', column:'ID'
//
master insertable: false // enforce foreign key
master updateable: false // enforce foreign key
} }
static constraints = {
id(max: 2147483647)
valor_det(size: 0..40)
}
String toString() {
return "${id}"
}
} }
but i get this form 但我得到这张表格
Valordet -> edit Valordet->编辑
Idmaster * -> edit Idmaster *->编辑
Master * -> listbox without values 主*->没有值的列表框
any idea? 任何想法?
Change the mapping of DetailId2 from 从更改DetailId2的映射
static mapping = {
table 'detail_id2'
version false
id generator:'identity', column:'ID'
}
to 至
static mapping = {
table 'detail_id2'
version false
id generator:'identity', column:'ID'
master insertable: false // enforce foreign key
master updateable: false // enforce foreign key
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.