阅读更多

8顶
1踩

编程语言

GORM

 

更好的 GORM 事件

GORM 已经支持 beforeInsert, beforeUpdate 和 beforeDelete events, 现在添加了对 afterInsert, afterUpdate 和 afterDelete events的支持

支持基础类型集合的存储

GORM 现在通过一个 join table 来支持像 String, Integer 这样的基础类型的集合的存储:

class Person {
   static  hasMany = [nicknames:String]
}
 

 

增强数据绑定功能

现在更容易对属性的自己和进行数据绑定。在之前的版本中你也许会使用:

person.properties = params
 

这将会将request中的所有变量绑定到person中。如果你不想绑定所有的数据的话,你可以使用 bindData 方法。现在你可以通过使用subscript operator来绑定部分的变量:

person.properties["firstName","lastName"] = params
 

要取得domain中的所有属性的一个子集也可以通过这样的方式:

person.properties["firstName","lastName"].each { println it }
  

 

以“只读”方式获得对象

现在可以通过read方法来获得“只读”的对象(不能更改、删除):

 

def book = Book.read(1)
 

 

默认排序

现在能够通过在domain中声明sort的方式来指定相关对象的排序方式:

class Book {
  String

  title
  
  static
 mapping = {
     sort "title"

  }
}
 

也可以在关联中声明sort:

class Author {
    static

    
    hasMany = [books:Book]
    
    static
 mapping = {
              books sort:"title"

    }
}
 

 

Batch Fetching

GORM 现在支持通过在domain中使用DSL来配置 batch fetching (an optimization of lazy loading) :

class Book {
  String

  title
  
  static
 mapping = {
     batchSize 15
  }
}
 

也可以在关联中使用:

class Author {
    static



 hasMany = [books:Book]
    static



 mapping = {
              books batchSize:15
    }
}
 

 

增强的动态查找器

动态查找器新增对InList的支持 :

def groovyBooks = Book.findByAuthorInList(['Dierk Koenig', 'Graeme Rocher'])
 

动态查找器现在能够使用query cache:

def books = Book.findByTitle("Groovy in Action", [cache:true] )
 

动态查找器也能使用悲观锁(pessimistic lock):

def books = Book.findByTitle("Groovy in Action", [lock:true] )
 

 

处理遗留数据库的单向一对多关系

单向一对多关系可以通过joinTable 属性来改变其在骑在的数据库中的映射方式:

class Book {
 String

 title

 static
 belongsTo = Author
 static
 hasMany = [authors:Author]

static mapping = { authors joinTable:[name:"mm_author_books" , key:'mm_book_id' ] } } class Author { String name



 static hasMany = [books:Book] static mapping = { books joinTable:[name:"mm_author_books" , key:'mm_author_id'] } }

 

 

 

 

插件

 

全局插件

现在支持安装全局插件来供所有的 grails 程序使用:

grails install-plugin webtest -global

 

支持多个插件源(Repository)

Grails 现在支持通过一个 USER_HOME/.grails/settings.groovy 文件或者一个 grails-app/conf/BuildSettings.groovy 文件来配置多个插件源,上述的文件应该包含相应的信息:

grails.plugin.repos.discovery.myRepository="http://svn.codehaus.org/grails/trunk/grails-test-plugin-repo"
grails.plugin.repos.distribution.myRepository="https://svn.codehaus.org/grails/trunk/grails-test-plugin-repo"



 

 

Automatic Transitive Plugin Resolution

现在插件不再需要被放到SVN中了,当Grails应用程序第一次载入时会通过插件的metadata进行自动安装。另外,插件的依赖问题也得到了解决。

 


测试

 

新的测试框架

在1.0.x的版本中以插件形式出现的测试框架(test framework )现在被集成到了Grails中。

 

 

 

脚手架

 

模板和动态脚手架

 

动态脚手架现在能够使用模板,可以通过install-templates命令来进行安装 相关模板

 

 

 

 

更多相关资源:


Changelog: http://jira.codehaus.org/browse/GRAILS?report=com.atlassian.jira.plugin.system.project:changelog-panel
Download: http://grails.org/Download
Documentation: http://grails.org/doc/1.1

来自: Grails
8
1
评论 共 9 条 请登录后发表评论
9 楼 dishhy 2008-12-01 13:12
不错,继续关注

8 楼 jamesqiu 2008-12-01 10:21
启动速度有所增加,开发部署还是不够迅捷,有时候改controller都不得不重启,否则出不来更新结果,更别说改domain和配置了,重启->起立倒水喝茶->回来发现编译错误->修改->重启->倒水喝茶。。。
7 楼 rockjava 2008-12-01 08:55
fcoffee 写道

刚被收购就发布1.1 beta, 果然是有动力了哈

会越来越牛的。
6 楼 泡泡 2008-11-30 10:41
Gmail 也一起升级吧。
5 楼 toeo 2008-11-30 09:15
关注中...
4 楼 fcoffee 2008-11-29 13:38
刚被收购就发布1.1 beta, 果然是有动力了哈
3 楼 lurena 2008-11-29 12:00
不错的消息。
2 楼 令狐虫 2008-11-29 10:10
很令人兴奋的消息
Grails 1.1 final明年一月发布吧??
1 楼 sword721 2008-11-29 09:45
grails也该加快点速度了,n年没升级了。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • VB多线程控件(Thread Factory) 破解版

    VB多线程控件(Thread Factory)破解版,PATH时关闭杀毒软件

  • VB多线程的几种实现方法

    先说多线程: 方法 1 : CreateThread 不用多说,万变不离其宗,这是 Win32 内创建线程的唯一系统方法,以下介绍的多线程创建方式虽然不直 接接触这个 Win32 APi,但系统也是通过他创建的。 方法 2 : TimerSetEvent 这个函数是 Win32 系统的一个高精度计时器函数,通过调用这个函数,系统会创建一个新的线程,让Timer 回调函数中的代码...

  • Visual Basic:多线程编程的优雅之舞

    多线程编程允许程序同时执行多个线程(task),每个线程可以执行不同的任务或同一任务的不同部分。这对于需要同时进行大量计算或处理多个输入/输出操作的应用程序非常有用。

  • VB获取所有进程+结束进程(COX控件)

    1、添加一个 “添加用户控件”,命名为“StartupList”,代码如下: Option Explicit Private Declare Function CreateToolhelpSnapshot Lib “kernel32” Alias “CreateToolhelp32Snapshot” (ByVal lFlags As Long, ByVal lProcessID As Long) As Long Private Declare Function ProcessFirst Lib “kern.

  • VB 多线程与委托,内含示例

    多线程:在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。多线程处理一个常见的例子就是用户界面。利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。用多线程的目的就是提高应用程序对事务处理能力,当程序在处理一个事务时,你还可以再做其它的事。 线程定义比较简单; 1、定义: ...

  • 用Visual Basic创建多线程应用程序

    问题背景:   有时候我们做程序时有这样的需求:有一个需要运行时间很长的循环,那么程序只有等待循环运行结束后才执行别的程序代码,这样机器一直处于循环之中,而不能响应别的事情,对CPU资源来说是一种浪费,那么可不可以既让循环执行,又可以执行程序另外的一部分代码呢?答案是可以的,那就要用到多线程了。  相关知识:  进程:是指程序在一个数据集合上运行的过程,是操作系统进行资源分配和调度运行的一个独立单

  • VB也是支持多线程

          虽然说VB也是支持多线程,但那只是最原始级的支持用Active X控件实现多线程程序显示过于笨重,烦琐(VB写的程序本身就很笨重,再不力图简洁当心走不动了-:));用Activedll,如果调用它的客户程序是单线程那做出来的程序整体上还是单线程的。后来在网上查资料说CreateThreadAPI函数可以简单高效地来实现多线程,可使用后发现这种“移花接木”的方

  • 在C#中调用VFP的DLL文件 --COM编程一例

     在C#中调用VFP的DLL文件 --COM编程一例这过程个非常简单,分为两步:1.在VFP中建立公共类语法如下:DEFINE CLASS ClassName1 AS ParentClass [OF ClassLibrary] [OLEPUBLIC]   [IMPLEMENTS cInterfaceName [EXCLUDE]       IN TypeLib | TypeLibGUID

  • 精选VFP常见编程实例

    1、1-100的累加 求1到100的累加值 CLEAR s=0 i=1 DO WHILE i<=100 s=s+i i=i+1 &&一定记住先累加后循环 ENDDO ?s RETURN

  • 模拟多线程断点续传

    今天算基本完成了 ServerXmlHttp 组件的研究,如果与 asp 结合,vfp 利用此组件可以完成很多 web service 的工作,用来开发 web 程序有极大的利用价值。这里的 web 程序不是指 B/S 模式,用 b/s 模式有很多客户要求暂时还是无法接受的,但数据存放在网络服务器上,只是数据与它交换,本地仍按 c/s 模式来写代码,只要做到 Internet 数据共享,查询和更新...

  • InitializeCriticalSection函数说明

    InitializeCriticalSection函数说明 VC函数声明   VOID InitializeCriticalSection(   LPCRITICAL_SECTION lpCriticalSection // critical section   );   函数功能   初始化一个临界资源对象   参数说明   lpCriticalS

  • VB 远线程注入技术(开源代码) .doc

    VB 远线程注入技术

  • 临界区使用方法实例

    VC/MFC 临界区使用方法实例 转载▼ 转载自新浪博客     临界区的作用:避免临界区内的数据(一般为共享的资源)被不同的线程同时访问,实现线程的同步操作。保证只能由先进入临界区的一个线程访问结束后,其他线程才可以继续访问共享的资源。 以下为临界区的使用方法: *.h头文件: #include CRITICAL_SECTION  m_cs

  • VB实现真正的稳定多线程(含源码)

    VB实现真正的稳定多线程...(含源码) 不解释自己看..资源来自 VBGOOD

  • VB 多线程例子

    内容索引:VB源码,系统相关,多线程  一款稳定的VB多线程例子源码,运行实例后,每个线程单独运行,框内一条竖线各自运行互不影响,本线程占用系统资源极少,而且较稳定,是值得大家借鉴的一款不错的多线程模块。

  • VB多线程操作类

    Option Explicit Private Declare Function CreateWin32Thread Lib "kernel32" Alias "CreateThread" (ByVal lpThreadAttributes As Long, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, ByVal lpPar...

Global site tag (gtag.js) - Google Analytics