Grails "duplicate field name"静态映射闭包错误



我在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 文档:http://grails.org/doc/latest/ref/Database%20Mapping/column.html

最新更新