在Grails 3中将hasMany ID定义为可空值

时间:2018-10-23 22:00:35

标签: sql hibernate grails gorm grails3

我有一个Grails 2应用程序,其中一个域对象使用此行:

static hasMany = [masters: AssetType, shortforms: AssetType, mezzanines: AssetType, captions: AssetType, artwork: AssetType, ancillary: AssetType]

生成的桥表有7列,所有列都是可为空的,并且表本身是稀疏填充的,大多数行的值只有2/7列。

现在,我正在迁移到Grails 3。 该应用程序的Grails 3版本具有完全相同的域类定义,但是结果表中的AssetType_ID仅可为空。

尝试用一些空值填充该表时出现此错误:

  

由于:org.h2.jdbc.JdbcSQLException:列“ AEPARTNER_PACKAGE_ANCILLARY_ID”不允许为NULL; SQL语句:               将值(?,?)插入aepartner_package_asset_type(aepartner_package_artwork_id,asset_type_id)[23502-197]

将以下代码添加到域类的“约束”没有帮助。

ancillary nullable: true

注意:我使用H2 Web客户端查看表数据和表定义,包括IS_NULLABLE字段。

如何在Grails 3中将这些列/字段设置为可空?

数据源定义:

dataSource:
    pooled: true
    jmxExport: true
    driverClassName: org.h2.Driver
    username: sa
    password: ''

environments:
    development:
        dataSource:
            dbCreate: create-drop
            url: jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
            grails.dbconsole.enabled: true

非常感谢您的帮助。

0 个答案:

没有答案