`
Jcat
  • 浏览: 49936 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Grails Domain - 复合唯一索引

阅读更多
通常都有这样的业务,父对象唯一,子对象在其父对象的范围内唯一。如,同一个公司内的员工名称必须是唯一的(这里假设即使重名,也用编号区分),但不同公司的员工可以重名。
 
Grails很轻松就能实现复合唯一索引的例子
    name(blank: false, unique: 'company')

相应的,在数据库会出现如下定义
    UNIQUE KEY `company_id` (`company_id`,`name`),



之前,我没查到这个功能,还用了很笨的自定义验证去实现。。。
name(blank: false, validator: { val, obj ->
  //for one company, employee cannot have same name
  //IdNotEqual for update case
  //todo 有没有复合唯一索引呀。。。
def e = Employee.findByNameAndCompanyAndIdNotEqual(val, obj.company, obj.id)
if (e) {
   return false
   } else {
   return true
   }
})
分享到:
评论

相关推荐

    grails-fck-editor-0.3.zip_grails_grails-fck-editor

    标题中的"grails-fck-editor-0.3.zip_grails_grails-fck-editor"表明这是一个与Grails框架相关的插件,具体来说是FCKeditor的一个版本。FCKeditor是一款广泛使用的开源富文本编辑器,它允许用户在网页上创建和编辑...

    grails-doc-CN-1.0.rar

    `grails-doc-CN-1.0.rar` 文件包含的是 Grails 1.0 版本的中文参考文档,对于那些不熟悉英文文档或者想要深入了解 Grails 的中文用户来说,这是一个极其宝贵的资源。 文档主要涵盖以下几个关键知识点: 1. **...

    The Grails Framework - Reference Documentation

    - **创建领域模型**:例如`grails create-domain-class Person`。 - **编写控制器**:实现对数据的操作逻辑。 - **创建视图**:展示数据给用户。 - **运行测试**:确保功能正确无误。 ##### 2.5 在IDE中设置 - **...

    grails-acegi-0.5.zip

    4. `docs`、`grails-app`、`src`、`scripts`和`lib`目录则分别包含了插件的文档、应用代码、源代码、脚本以及依赖的库文件。 Grails Acegi 0.5插件提供了以下主要功能: - **用户认证**:支持多种认证机制,如...

    grails-datastore-gorm-plugin-support-2.0.4.RELEASE.zip

    总之,"grails-datastore-gorm-plugin-support-2.0.4.RELEASE.zip"提供了一个宝贵的资源,让开发者有机会学习和实践Grails的ORM功能和Android的MVC设计模式。无论是对Grails框架的探索,还是对Android开发的深化,这...

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part2

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part2 共两个包,解压后需要将扩展名.zip.bak改名为.zip重新解压。 http://dist.springsource.com/release/STS/3.8.1.RELEASE/dist/ e4.6/spring-tool-...

    grails-docs-1.0.3

    grails参考文档 The Grails Framework - Reference Documentation Authors: Graeme Rocher, Marc Palmer Version: 1.0.3

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part1

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part1 共两个压缩包,解压后将扩展名.zip.bak改为.zip再次解压。

    Grails-2.4.4-用户手册

    2. **创建新项目**:通过`grails create-app`命令创建项目,理解`grails-app`目录结构。 3. **编写Domain Class**:学习如何定义领域类,包括关系映射和验证规则。 4. **创建Controller**:了解如何创建控制器,处理...

    Grails1.3.7-doc

    - **GORM(Grails Object-Relational Mapping)**:Grails内置的ORM框架,使得数据访问简单易行,通过Domain Classes可以直接操作数据库,支持HQL(Hibernate Query Language)。 - **Controllers and Views**:...

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    本文将深入探讨Grails的中文文档以及“grails-fckeditor-0.9.5”插件的相关知识点。 一、Grails框架基础 1. Groovy语言:Grails的基础是Groovy,这是一种面向对象、动态类型的编程语言,语法简洁且与Java高度兼容...

    grails3.2.8-01

    grails3.2.8 part1

    grails-quartz-0.4.1

    在`Grails` 中,`Grails-Quartz` 插件提供了集成`Quartz` 的能力,使得开发者可以在`Grails` 应用中方便地安排和执行周期性任务。 **1. QuartzGrailsPlugin.groovy** 这个文件是`Grails` 插件的核心配置文件,其中...

    grails-getting-started

    - **Domain类**:用于表示数据库中的表,支持自动的ORM映射。 - **Controllers**:处理HTTP请求,并将数据传递给视图层。 - **Services**:用于执行业务逻辑,通常不直接与视图交互。 - **GSP (Groovy Server Pages)...

    grails-web-url-mappings-2.5.4.zip

    这个名为"grails-web-url-mappings-2.5.4.zip"的压缩包包含了Grails 2.5.4版本中的Web URL映射相关代码,让我们深入探讨这一关键组件。 Grails是一个基于Groovy语言的全栈式Java web框架,其设计理念是“简洁、生产...

    grails-3.0.5-ga (2/2)

    以下是关于"grails-3.0.5-ga (2/2)"的详细知识点: 1. **Groovy语言**: Grails框架是用Groovy语言编写的,这是一种动态、面向对象的编程语言,与Java高度兼容,但语法更加简洁和灵活。 2. **MVC架构**: Grails遵循...

    grails-bin-1.1

    标题"grails-bin-1.1"指的是Grails框架的1.1版本的二进制发行版。这个版本的Grails是一个免安装版,意味着用户可以直接将它解压到任何位置,而不需要通过传统的安装程序进行安装。 描述中的"本文件只需要放到相应...

    grails-core源码

    在解压后的`grails-core-master`目录中,我们可以看到Grails的核心模块组织结构。通常,一个开源项目的源码结构反映了它的设计思路和功能划分。`src/main/groovy`包含了主要的源代码,`src/test/groovy`用于存放测试...

    grails-docs-2.0.0

    `grails-docs-2.0.0`是Grails 2.0.0版本的官方文档,包含了丰富的指南、API参考以及国际化资源,对于学习和掌握Grails 2.0.0至关重要。 首先,`index.html`是文档的主页,通常会包含目录、介绍性内容以及如何开始的...

Global site tag (gtag.js) - Google Analytics