现在在考虑开发一个数据访问的框架,基于JBoss 4.03(ejb3.0, hibernate 3.2), 提供统一的分布式的访问数据的API, 准备采用Facade Session EJB 的设计模式。有两个难点:
一个是需要支持分布式,Facade模式可以,但是分布式无法支持hibernate的惰性加载lazy,头痛ing。一个就是如何符合SDO规范,最关键的难点的是如何实现DataObject接口里面的动态获取属性方法。大家有没有好的建议啊,小弟谢过!!!

解决方案 »

  1.   

    靠,都没听过的词~动态属性,用reflect应该就可以了。其他的不知道说啥
      

  2.   

    1.你的底层可以基于Hibernate,但是你发布的API一定要禁止直接访问底层的Hibernate对象,包括你的系统内部实现代码,也禁止从一个Hibernate对象直接访问另外一个Hibernate对象,而是一样通过你的API来访问。这样应该可以解决分布式的问题。2.动态属性,用反射机制来实现。
      

  3.   

    “禁止直接访问hibernate对象”,你的意思是不能直接访问POJO的domain object了吗?如果要同时支持SDO规范中的动态和静态呢?如果用DataObject的话,那就没有直接使用Hibernate中的domain object了,估计只能把domain object作为DataObject中的一个属性了,采用反射来获取它的属性,有没有比反射更好的方法呢?反射比较有点性能问题。
      

  4.   

    SDO用到项目中未必是一个明智的选择,毕竟规范还没有出final版