当Hibernate的lazy=true时,怎样使用Flex
开发FLex约有3年,而且每次都使用了Hibernate,每次都遇到了lazy=true的问题,每次也都用非常愚笨的办法来解决。先把数据从数据库中取出,在转换之前清除掉不需要的属性。
虽说比较郁闷,但在性能与开发效率上勉强能满足需求。本文提供一个可以彻底解决Hibernate的lazy=true的问题的方案。
1)下载RichLazyHibernate和flex相关的demo,网址为http://code.google.com/p/rich-hibernate-lazy/downloads/list ;
2)根据中文档搭建后台hibernate的运行环境。(此处不再详述,本blog也将会有相关的文章介绍,也可以从网站下载中文文档);
3)根据flex代码获取。 获取afuer_richLazyHibernate_flex.swc,放在自己的项目中。(注:此处采用Flex4.5sdk,可以直接换用其他的sdk编译)
4)这样就可以使用Flex了,首先介绍使用LazyHttpService,这个类继承HttpService。使用方法如下所示:
注:lazyObj="roles,organization" 为当前查询类的关联属性
5) 直接使用LazyDatagrid,继承自Datagrid:
6)再介绍使用LazyRemoteObject,继承自RemoteObject: