Grails+EJB Domain Models - 编程入门网
Grails+EJB Domain Models时间:2007-05-30 csdnRuby 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |