1.关联查询
假设有以下领域对象:
class Account{
Transaction transaction
Date created
}
class Transaction{
Date date
}
def c = Account.createCriteria()
def now = new Date()
def results = c.list {
transaction {//查询关联的属性
between('date',now-10, now)
}
eq("transaction.id", 1 as Long)//如果是关联的id可以这样查询(many to one / one to one)
}
def c = Account.createCriteria()
def now = new Date()
def results = c.list {
eq("transaction.date", new Date())//运行时出错,关联除id外的属性不能这样查询
}
2.批量查询关联
batchSize: N,N是指查询关联的个数,而不是关联元素个数(当关联为集合时)。
class Person {
String firstName
Pet pet
static mapping = {
pet batchSize: 5//假如我们查询二十个Person对象,在第一次使用到pet时会一次查询出5个pet,对于集合的联系也是如此。
}
}
class Account{
static hasMany = [transactions:Transaction]
//Transaction transaction
Date created
static mapping = {
transactions batchSize: 4
}
}
class Transaction{
static belongsTo = [account:Account]
Date date
}
def c = Account.createCriteria()
def results = c.list {
}
results.each {
println it.transactions
}
在这里会查询出4个transactions集合,SQL语句有可能是:
select
this_.id as id78_0_,
this_.version as version78_0_,
this_.created as created78_0_
from
account this_
select
transactio0_.account_id as account3_1_,
transactio0_.id as id1_,
transactio0_.id as id81_0_,
transactio0_.version as version81_0_,
transactio0_.account_id as account3_81_0_,
transactio0_.date as date81_0_
from
transaction transactio0_
where
transactio0_.account_id in (
?, ?, ?, ?
)
3.约束
Grails的属性(包括many to one / one to one的关联)默认是不为空的
分享到:
相关推荐
GORM,即Grails Object Relational Mapping,是Grails框架的核心组件之一,它允许开发者以面向对象的方式操作数据库,而无需编写大量的SQL代码。GORM支持多种数据存储技术,包括关系型数据库(如MySQL、PostgreSQL)...
标题 "grails-datastore-gorm-tck-1.0.9.RELEASE.zip" 提供的信息表明,这是一个与Grails框架相关的数据存储(Datastore)和GORM(Grails Object Relational Mapping)测试兼容性工具包(Test Compatibility Kit,...
《The definitive Guide To Grails学习笔记》是一份深入探讨Grails框架的重要资源,它源于经典书籍《The Definitive Guide to Grails》的精华总结。Grails是一种基于Groovy语言的开源Web应用框架,旨在提高开发效率...
《Grails学习笔记:监听器与环境配置》 在Grails框架中,监听器和环境配置是提升开发效率的关键元素。监听器允许开发者在特定事件发生时执行自定义操作,而环境配置则确保了不同环境下应用的正确运行。本文将深入...
尽管只有155页,但内容涵盖了从基础到进阶的所有知识点,非常适合快速学习和掌握Grails框架中的GORM使用方法。 #### 标签解析:“Grails GORM” 这个标签强调了书籍的核心主题——Grails框架中的GORM技术。这表明...
在本教程中,我们将探讨如何使用GORM(Grails Object-Relational Mapping)构建Spring Boot应用程序。GORM是Grails框架的核心部分,它为开发者提供了简单、强大的数据持久化功能,支持Hibernate和MongoDB等数据库。...
Grails框架中的GORM(Groovy Object Relational Mapping)是利用Groovy语言的优势来简化数据库操作的一套对象关系映射技术。GORM支持多种查询方式,提供了类似于Hibernate的查询能力,并且由于Groovy语言的动态特性...
### Grails 入门指南第二版学习笔记 #### 第二章:Grails 应用的基础操作与领域类 - **创建 Grails 应用** - 使用 `grails create-app racetrack` 命令来创建一个新的 Grails 应用程序。 - `racetrack` 是应用的...
3. **GORM(Grails Object-Relational Mapping)**:Grails的持久化层,提供了一种方便的方式来操作数据库,支持Hibernate和JPA,使得数据库交互变得简单。 4. **Grails Command Objects**:用于处理用户输入,可以...
### Grails 开发笔记 #### Grails 概述 Grails 是一款用于 Web 应用开发的开源框架,它基于 Groovy 编程语言,并集成了 Spring、Hibernate 和 SiteMesh 等成熟技术栈。其核心特性之一是“规约取代配置”...
Grails内置了GORM(Grails Object Relational Mapping),这是一种简化数据库访问的方式,可以自动处理对象和数据库表之间的映射。创建领域类(Domain Class)即可实现数据持久化,例如,创建一个名为Book的领域类,...
【Grails 学习知识点详解】 Grails 是一个基于 Groovy 语言的开源 Web 应用框架,它简化了开发过程并提供了丰富的功能。本文将深入探讨 Grails 中的一些常见问题及其解决方案,帮助你更好地理解和掌握 Grails 开发...
Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之上,旨在简化开发过程并提高生产力。Grails 的设计深受Ruby on Rails的影响,提供了MVC(模型-视图-控制器)架构模式,允许开发者快速构建...
通过《Grails权威指南》,你可以学习到如何利用Grails的强大功能来开发高效、可扩展的Web应用,同时也了解到如何利用Groovy语言和Grails框架的最佳实践,提升你的开发技能。这本书深入浅出地讲解了Grails的各个方面...
《Grails用户手册》 Grails,作为一个基于Groovy语言的开源Web应用框架,深受开发者喜爱,它简化了Java开发的复杂性,提供了强大的MVC...通过学习和实践,开发者可以充分利用Grails的强大功能,高效开发Web应用程序。
在学习Grails的过程中,初学者可能会遇到一系列的问题。Grails是一个基于Groovy语言的Web应用框架,它借鉴了Ruby on Rails的理念,强调“规约优于配置”,以提高开发效率。以下是一些关键知识点: 1. **环境配置**...
在IT行业中,GORM是一个非常重要的工具,尤其在Grails框架中,它是处理数据库操作的主要接口。本篇文章将深入探讨GORM的独立启动(Standalone)功能,这使得开发者可以在不依赖整个Grails应用的情况下使用GORM的强大...