在grails的基类中添加新属性后出错

时间:2015-01-15 12:51:41

标签: grails inheritance

我创建了一个名为CheckInheritance的非常简单的Grails项目(IntelliJ IDEA 14.0.2) 两个域类:

package checkinheritance

class Parent {

  String name

  static constraints = {
  }
}


package checkinheritance

class Child extends Parent{

  String prename

  static constraints = {
  }
}

我为Child类生成了控制器类和视图 当我开始申请时,每个人都可以正常工作。

然后我将属性“dscription”添加到Parent类:

package checkinheritance

class Parent {

  String name
  String description

  static constraints = {
  }
}

我删除了Child类的视图和控制器。然后我重新生成Child类的文件(视图,控制器)。 当我启动应用程序时,我想添加一个Child对象。 输入数据(在所有输入字段中)并按“Anlegen”(保存)后,我收到一个错误,即属性“description”不能为null(请参阅带有德语消息的屏幕截图)。 当基类是抽象的时候也会发生这种情况。 数据库为空且为新(开发模式)。

这是属性“description”的生成_form.gsp:

<div class="fieldcontain ${hasErrors(bean: childInstance, field: 'description', 'error')} required">
    <label for="description">
        <g:message code="child.description.label" default="Description" />
        <span class="required-indicator">*</span>
    </label>
    <g:textField name="description" required="" value="${childInstance?.description}"/>

</div>

我是否必须在基类中为新属性“description”添加一些内容?

这是我的环境:

申请状态 应用版本:0.1 Grails版本:2.4.4 Groovy版本:2.3.7 JVM版本:1.8.0_25 重新加载活动:true 控制器:3 域名:2 服务:3 标签库:15 安装的插件 restResponder - 2.4.4 记录 - 2.4.4 i18n - 2.4.4 dataBinding - 2.4.4 核心 - 2.4.4 servlets - 2.4.4 编解码器 - 2.4.4 webxml - 1.4.1 databaseMigration - 1.4.0 jquery - 1.11.1 dataSource - 2.4.4 urlMappings - 2.4.4 控制器 - 2.4.4 assetPipeline - 1.9.9 过滤器 - 2.4.4 domainClass - 2.4.4 controllersAsync - 2.4.4 mimeTypes - 2.4.4 hibernate4 - 4.3.6.1 转换器 - 2.4.4 groovyPages - 2.4.4 服务 - 2.4.4 验证 - 2.4.4 脚手架 - 2.1.2 缓存 - 1.1.8

1 个答案:

答案 0 :(得分:1)

默认描述为必填项。 因为它可以为nullable = false;

你可以尝试

    String name
    String description

    static constraints = {
    description nullable: true

    }