Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Grails:如何使用Grails约束定义主细节视图_Java_Grails_Gorm - Fatal编程技术网

Java Grails:如何使用Grails约束定义主细节视图

Java Grails:如何使用Grails约束定义主细节视图,java,grails,gorm,Java,Grails,Gorm,我想用以下表格创建一个简单的主视图/详细视图: 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

我想用以下表格创建一个简单的主视图/详细视图:

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;
我有以下域类:

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}" 
    }
}
但是细节视图没有指定外键

我的代码有什么问题

我做了一些改变

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'     
}

}

类DetailId2实现可序列化{

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
}

}

但是我得到了这份表格

Valordet->编辑

Idmaster*->编辑

Master*->不带值的列表框


有什么想法吗?

将DetailId2的映射从

static mapping = {
        table 'detail_id2'
        version false
        id generator:'identity', column:'ID'
    }


您是在尝试映射到现有模式,还是让Grails为您创建模式?我用这种方式重新定义了细节类
static constraints = {
    id(max: 2147483647)
    valor_det(size: 0..40)
}
String toString() {
    return "${id}" 
}
static mapping = {
        table 'detail_id2'
        version false
        id generator:'identity', column:'ID'
    }
static mapping = {
        table 'detail_id2'
        version false
        id generator:'identity', column:'ID'
        master insertable: false               // enforce foreign key
        master updateable: false               // enforce foreign key
    }