grails1

[size=medium]1.Grails提供了一个名为 grails-app/conf/Config.groovy 的文件用来进行一般性配置:
你可以在这里添加你自己的配置,例如:


foo.bar.hello = "world"

配置完成后你就可以在你的应用程序里使用两种方式来访问这些设置了。最常用是通过 GrailsApplication 对象,它可以在控制器或标记库中作为一个变量来使用:


assert "world" == grailsApplication.config.foo.bar.hello
2.GrailsApplication类可以提供Grails的会话的信息,例如:def bookClass = grailsApplication.classLoader.loadClass("Book")
3。集合类型和性能
Java中的 Set 是一个不能有重复条目的集合类型. 为了确保添加到 Set 关联中的条目是唯一的,Hibernate 首先加载数据库中的全部关联. 如果你在关联中有大量的条目,那么这对性能来说是一个巨大的浪费.

这样做就需要 List 类型, 因为Hibernate需要加载全部关联以维持供应. 因此如果你希望大量的记录关联,那么你可以制作一个双向关联以便连接能在反面被建立。例如思考一下代码:


def book = new Book(title:"New Grails Book")
def author = Author.get(1)
book.author = author
book.save()

在这个例子中关联链接被child (Book)创建,因此没有必要手动操作集合以使查询更少和高效代码。由于Author有大量的关联的Book 实例,如果你写入像下面的代码,你可以看到性能的影响:


def book = new Book(title:"New Grails Book")
def author = Author.get(1)
author.addToBooks(book)
author.save()

4。list方法的分页和排序方法:
list 方法支持分页参数:


def books = Book.list(offset:10, max:20)

也可以排序:


def books = Book.list(sort:"title", order:"asc")


5。
方法 描述

list 这是默认的方法。它会返回所有匹配的行。
get 返回唯一的结果集,比如,就一行。criteria已经规定好了,仅仅查询一行。这个方法更方便,免得使用一个limit来只取第一行使人迷惑。
scroll 返回一个可滚动的结果集
listDistinct 如果子查询或者关联被使用,有一个可能就是在结果集中多次出现同一行,这个方法允许只列出不同的条目,它等价于 CriteriaSpecification 类的DISTINCT_ROOT_ENTITY

6.立即加载:
static fetchMode = [flights:"eager"]
static mapping = {
flight fetch:"join"
}
static mapping = {
addresses lazy:false
}
7。
使用Flash作用域
Grails 支持 flash作用域的概念,它只用于临时存储用于这个请求到下个请求的属性,然后,这个属性就会被清除对于重定向前直接设置消息是非常有用的,例如:


def delete = {
def b = Book.get( params.id )
if(!b) {
flash.message = "User not found for id ${params.id}"
redirect(action:list)
}
… // remaining code
}


[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值