Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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
Grails “圣杯”;重复字段名“;静态映射闭包中的错误_Grails_Groovy_Mapping - Fatal编程技术网

Grails “圣杯”;重复字段名“;静态映射闭包中的错误

Grails “圣杯”;重复字段名“;静态映射闭包中的错误,grails,groovy,mapping,Grails,Groovy,Mapping,我在Grails中的“Class”类中收到以下错误。对于每个字段,它告诉我有一个重复的字段。这没有任何意义,因为我所要做的只是将字段与其关联的表列进行映射。类字段和映射闭包中的字段都有下划线。这是我目前的课程: package booklist class Class { Integer id String name String description String instructor String courseNumber String lineNumber List books Bi

我在Grails中的“Class”类中收到以下错误。对于每个字段,它告诉我有一个重复的字段。这没有任何意义,因为我所要做的只是将字段与其关联的表列进行映射。类字段和映射闭包中的字段都有下划线。这是我目前的课程:

package booklist

class Class {

Integer id
String name
String description
String instructor
String courseNumber
String lineNumber
List books
BigDecimal bookTotalPrice
String sequenceNumber
String subjectCode


static constraints = {

}

static mapping = {
    //Uses the default datasource
    table ''

    columns {
        id column: 'class_id'
        name column: 'class_name'
        description column: 'course_description'
        instructor column: 'instructor_name'
        courseNumber column: 'course_number'
        lineNumber column: 'line_number'
        bookTotalPrice column: 'book_total_price'
        sequenceNumber column: 'sequence_number'
        subjectCode column: 'subject_code'
    }

    }
}

不需要在静态映射中声明不需要重命名的字段。写下这句话:

package booklist

class MyClass {

    Integer id
    String name
    String description
    String instructor
    String courseNumber
    String lineNumber
    List books
    BigDecimal bookTotalPrice
    String sequenceNumber
    String subjectCode

    static mapping = {
        description column: 'course_description'
    }
}
Grails使用CoC(约定优先于配置)方法:如果您不需要更改某些内容,请不要编写它,然后使用约定


有关列映射的更多详细信息,请查看Grails文档:

我仍然需要将它们映射到数据库,只是还没有输入数据库列名(因为我现在还不知道它们,还在等待DBA的回复)。但即使我输入了一个“假”列名(如“课程描述”),它仍然告诉我描述是一个重复的字段。@grantmc你指的是你的编辑器告诉你的字段是重复的,还是Grails在你运行应用程序时告诉你的?是的,没错。GGTS和IntelliJ IDEA都给了我这个错误。当我试图从命令行运行应用程序时,我得到一个错误,上面写着:
|编译5个源文件。|错误编译错误:启动失败:C:\Users\grant\Documents\workspace ggts\Booklist\grails app\domain\book list\Class.groovy:26:应为“}”,找到“:”@第26行第15列。名称列:^1错误
映射中删除
,从我的答案代码中可以看出,静态映射块中的列包装是不必要的。我已将文档页面链接到您,请在有疑问时查看它。:)