grails中blank和nullable的区别
展开全部
声明约束属性时,blank和nullable好像都能限制非空,那么下面两个语句的区别在哪里:
name(blank:false)
dateOfBirth(nullable:false)
一:
blank用于约束String数据,nullable用于约束对象
name是String类型,所以用blank,dateOfBirth声明时用的是new Date(),因此用nullable
二:
不赞同4楼的回复。我给你举个例子:
String name1
String name2
String name3
String name4
static constraints =
{
name1(nullable:false,blank:false)
name2(nullable:false,blank:true)
name3(nullable:true,blank:false)
name4(nullable:true,blank:true)
}
映射到数据库的DDL语句为:
CREATE TABLE `test` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`version` bigint(20) NOT NULL,
`name1` varchar(255) NOT NULL,
`name2` varchar(255) NOT NULL,
`name3` varchar(255) DEFAULT NULL,
`name4` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
而且此时页面校验要求只有name1是必填的。
如果还不能理解,附带这两个sql,看下效果:
select * from test where name3 = '';
select * from test where name3 is null;
name(blank:false)
dateOfBirth(nullable:false)
一:
blank用于约束String数据,nullable用于约束对象
name是String类型,所以用blank,dateOfBirth声明时用的是new Date(),因此用nullable
二:
不赞同4楼的回复。我给你举个例子:
String name1
String name2
String name3
String name4
static constraints =
{
name1(nullable:false,blank:false)
name2(nullable:false,blank:true)
name3(nullable:true,blank:false)
name4(nullable:true,blank:true)
}
映射到数据库的DDL语句为:
CREATE TABLE `test` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`version` bigint(20) NOT NULL,
`name1` varchar(255) NOT NULL,
`name2` varchar(255) NOT NULL,
`name3` varchar(255) DEFAULT NULL,
`name4` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
而且此时页面校验要求只有name1是必填的。
如果还不能理解,附带这两个sql,看下效果:
select * from test where name3 = '';
select * from test where name3 is null;
亚果会
2024-04-11 广告
2024-04-11 广告
Goma Greens是一家专注于提供高品质有机蔬果的企业。我们致力于为消费者带来新鲜、健康、无污染的食材,以满足现代人对健康生活的追求。我们的产品均来自精心挑选的有机农场,通过严格的品质控制,确保每一份食材都达到最高标准。此外,我们还提供...
点击进入详情页
本回答由亚果会提供
展开全部
Grails是一套用于快速Web应用开发的开源框架,它基于Groovy编程语言,并构建于Spring、Hibernate和其它标准Java框架之上,从而为大家带来一套能实现超高生产力的一站式框架。
Ruby on Rails开创了将一门强大的编程语言和一个坚持己见、提倡用通情达理的默认设置代替复杂配置的框架进行创造性结合的先河。然而,还有许多组织并没有做好从Java的安全保护伞下走出的准备,也没有打算放弃他们目前在Java上的投入。而Grails的出现,使得在一个以Java为中心的环境中实现同等生产力的想法成为可能。
Grails的插件系统
grails的插件系统也是其亮点之一。首先,和rails,django等web框架类似,基于微内核的思想,插件(可重用模块)是框架的一等公民。grails除了核心模块以外的功能几乎都是通过插件方式实现的。实际上,一个grails插件和一个grails应用基本是完全一样的,同样可以使用grails run-app命令来运行。区别仅在于一个插件的根目录下需要提供一个fooplugin.groovy文件,提供插件的一些描述信息。
grails插件基本可以做任何事情,grails社区已经提供了各式各样的插件,发布在grails官方插件源上。查看现有的官方插件,可以执行下面的命令:
grails list-plugins
安装插件可以执行以下命令:
grails install-plugin 插件名或插件路径
Ruby on Rails开创了将一门强大的编程语言和一个坚持己见、提倡用通情达理的默认设置代替复杂配置的框架进行创造性结合的先河。然而,还有许多组织并没有做好从Java的安全保护伞下走出的准备,也没有打算放弃他们目前在Java上的投入。而Grails的出现,使得在一个以Java为中心的环境中实现同等生产力的想法成为可能。
Grails的插件系统
grails的插件系统也是其亮点之一。首先,和rails,django等web框架类似,基于微内核的思想,插件(可重用模块)是框架的一等公民。grails除了核心模块以外的功能几乎都是通过插件方式实现的。实际上,一个grails插件和一个grails应用基本是完全一样的,同样可以使用grails run-app命令来运行。区别仅在于一个插件的根目录下需要提供一个fooplugin.groovy文件,提供插件的一些描述信息。
grails插件基本可以做任何事情,grails社区已经提供了各式各样的插件,发布在grails官方插件源上。查看现有的官方插件,可以执行下面的命令:
grails list-plugins
安装插件可以执行以下命令:
grails install-plugin 插件名或插件路径
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询