首页 > 解决方案 > 在域类中使用“布尔”变量,未创建表

问题描述

我想在带有 MySQL 数据库的 Grails 的域类中使用布尔属性。但是,当我运行此应用程序时,不会创建此表,也没有任何错误消息。但是当我删除这个属性时read,这个表就创建成功了。

领域类:

class Message {

    Player author
    Player target
    String content
    boolean read

    static constraints = {
        target nullable: false
        author nullable: false
        content blank: false
    }

    static mapping = {
        read defaultValue: false
    }
}

标签: grailsgrails-orm

解决方案


我猜你正面临这个问题,因为根据 MySQL 文档read是保留关键字:

READ(R)

您可以将变量名称更改read为其他名称,也可以使用mapping闭包将列名称更改为其他名称,例如:

class Message {

    Player author
    Player target
    String content
    boolean read

    static constraints = {
        target nullable: false
        author nullable: false
        content blank: false
    }

    static mapping = {
        read defaultValue: false, column: 'is_read'
    }
}

推荐阅读