我创建了一个名为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
答案 0 :(得分:1)
默认描述为必填项。 因为它可以为nullable = false;
你可以尝试
String name
String description
static constraints = {
description nullable: true
}