Grails 如何使枚举字段成为tinyint而不是varchar?

Grails 如何使枚举字段成为tinyint而不是varchar?,grails,groovy,grails-2.0,Grails,Groovy,Grails 2.0,我有一个定义为的域类 class QuestionSurvey { String questionText QuestionTypeSurvey questionType static hasMany = [options: QuestionOptionSurvey] static constraints = {} } 现在,在上面的域QuestionTypeSurvey中有一个enum类,我在src/groovy中定义了这个类,因为我不希望这个字段有一个

我有一个定义为的域类

class QuestionSurvey {

    String questionText
    QuestionTypeSurvey questionType

    static hasMany = [options: QuestionOptionSurvey]

    static constraints = {}
}
现在,在上面的域QuestionTypeSurvey中有一个enum类,我在src/groovy中定义了这个类,因为我不希望这个字段有一个单独的表。问卷类型调查的定义如下:

enum QuestionTypeSurvey {

        TEXT_FIELD,
        TEXT_AREA,
        RADIO_BUTTON,
        DROPDOWN_BOX,
        CHECK_BOX
}

现在,当我运行应用程序并查看表结构时,我注意到QuestionSurvey表中的questionType字段不是我所期望的很小的int,因为它指向一个枚举,而是VARCHAR。我感到困惑。因为这是使用枚举而不是字符串的全部目的,所以是否有必要将类型设置为tinyint而不是varchar?谢谢你的帮助

您可以在域类中添加映射配置,以便将枚举存储为int。我不知道怎样才能把它变成一个小玩意儿,但至少它不是一个小玩意儿

static mapping = {
    questionType enumType: 'ordinal'
}
Grails文档:

如果需要,还可以将id字段添加到Enum类并定义要存储的值。