java是如何根据参数在dao层new出相应对象的?具体需求是这样的:我们的项目是人力资源问卷调查系统,后台是SSH架构搭建的! 现在碰到一个这样的问题,flex前台需要展现的很多对象的部分数据,是这样的代码:
比如题目类的部分代码:
class Subject{
  private Set<Dimension> children;
  private int id;
  private String name;
  private Dimension parentDimentsion;
}
其中一个属性是个set,set里面存储了很多其他的类的对象,那些对象又和其他的对象关联!当我们在前台只是需要一个字符串 比如:subject.name或者set里面的某一个对象的时候,即使通过hibernate的延迟加载 我想执行的效率都不高啊!我们现在的做法是:在Service层new一个新对象把hibernate查询出来的前台需要的字段给这个新对象,然后传给前台!但是这样开发的效率又不高!我现在的想法是:如何根据前台传来的参数或(对象),在Service层写一个通用的方法 ,根据前台传来的对象自动new一个这个对象的新实例,以便进一步操作。 我听朋友说过 这好像叫 java反向XX....
不知道我的需求说请了么?不知道这个想法是否可行以及如何实现 或者还有其他更好的做法?我是菜鸟 希望写的详细点!

解决方案 »

  1.   

    DAO层本就是处理与数据库相关的内容,你又把另设一处理逻辑,感觉不太好,
    看看 hibernate 有关的 cache 机制能不能解决性能问题,
    或者也可以考虑用 ibatis,不过估计是改不了,毕竟你已经用了那么久了……
      

  2.   

    楼主可以试试使用 spring的 反射机制。
    http://blog.csdn.net/upyaya/archive/2006/09/08/1193723.aspx
    http://www.blogjava.net/DoubleJ/archive/2008/03/04/183796.html参考一下 
      

  3.   

    我晕,DAO层是干嘛的,楼主清楚吗,这里需要new什么对象,这里直观取吧。 如果真的需要什么VO对象,那直接new就好啦。
      

  4.   

    从DAO层查询出来的数据,本来就是要用VO来封装,传到前台,基本不会有什么效率问题。要是真有,检查下其他部分的程序吧。
      

  5.   

    在虚拟机里面动态加载一个对象
    YouClass obj = (YouClass)Thread.currentThread().getContextClassLoader().loadClass(className);
    className作为参数传递进来即可.