快速业务通道

Grails+EJB Domain Models - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25

Grails+EJB Domain Models

时间:2007-05-30 csdn

Ruby on Rail尽管不断吸引软件工程领域的注意,但企业级的开发室仍然对其很不信任.为什么?“基于脚本语言的框架难道也能符合企业级应用么?!” 对于RoR,最主要的论据就是他们缺乏企业级服务(例如分布式事务,消息等)。对很多业务来说,没有这些服务的平台是根本不予考虑的。 Grail就是一个快速的企业级快速应用开发工具。它基于Groovy语言,可以无缝的集成Java的服务,同时也提供了脚本语言的巨大便利。

为了显示它的企业集成能力,Grails可以快速方便的构建一个web应用程序,后端使用EJB3实体beans。但是,不仅仅如此,Grails让你可以对实体bean实现动态控制,而不需要你修改EJB的源代码。Grails Object Relational Mapping (GORM)是基于Hibernate 3的(最终也会支持Java Persistence API),并且使用Groovy''s Meta Object Protocol (MOP)来添加各种手工动态方法给实际上静态的实体bean。这些方法不仅可以给Grails和Groovy调用;Java代码也可以调用。这样我们就同时拥有了JEE/EJB3的企业级能力和RAD web应用开发的便利。

Rails的代码生成就不用说了,RoR做到的,它都能做到,下面看看他的扩充代码

import com.jasonrudolph.ejb3example.entity.EmployeeBean

添加一个web事件和RoR相比,Grail对对象关联的处理十分灵活def showComputersByEmployee = {render(view:''list'', model:[ computerBeanList:ComputerBean.findAllByEmployeeBean(EmployeeBean.get(params.id)) ])}

保存web提交def update = {def computerBean = ComputerBean.get( params.id )if(computerBean) {if (computerBean.employeeBean) {computerBean.employeeBean.computers.remove(computerBean)}

computerBean.properties = params

def employeeBean = EmployeeBean.get(params.employeeId)employeeBean.computers.add(computerBean)computerBean.employeeBean = employeeBean

if(computerBean.save()) {redirect(action:show,id:computerBean.id)}else {render(view:''edit'',model:[computerBean:computerBean])}}else {flash.message = "ComputerBean not found with id ${params.id}"redirect(action:edit,id:params.id)}}

验证规则这是Grails的另一个特色constraints = {networkId(length:6..8,blank:false,unique:true)firstName(maxLength:20,blank:false)lastName(maxLength:20,blank:false)startDate(nullable:false)}

查找事件def showSearchResults = {render(view:''list'', model:[ employeeBeanList:EmployeeBean.findAllByLastNameLike("%" + params.lastName + "%") ])}

高级查找def showSearchResults = {def criteria = EmployeeBean.createCriteria()

def results = criteria {or {ilike("networkId", "%" + params.networkId + "%")and {eq("firstName", params.firstName)eq("lastName", params.lastName)}}}

render(view:''list'', model:[ employeeBeanList: results.adaptee ])}

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号