Flex数据服务——延时加载研究报告
研究对象:graniteds1.0
结论:还不能提供前端动态延时加载数据,其官方文档所说的“lazy initialized ActionScript 3 beans (Entity Beans / Hibernate)”,其实只是支持对象的id缓存到前端as bean,不能直接在调用实体的关联对象或关联集合时动态通过ejb3或hibernate查询得到其关联对象或集合。
现象:Person对象与关联对象集合contacts配置了延时加载,在使用person.contacts时未能动态加载contacts数据,也不报错。
解决方案:配置hibernate或ejb3使用延时加载,as bean同样配置laziness 和使用 readExternal/writeExternal方法来保持对象的一致,然后调用远程的方法,参数为此对象,然后再远程java方法里用此对象.getOtherEntities()来获取关联的对象或集合,然后返回客户端展现。不知道各位有谁试过,hibernate 或 ejb3配置了延时加载,在flex客户端直接object.otherObjects能够动态延时加载查询得到数据的。