当前位置:  技术问答>java相关

EJB问题,请教一个好的方法!

    来源: 互联网  发布时间:2015-02-21

    本文导语:  CMP中如何根据client需求动态地返回单条纪录的批量属性,举个例子: CustomerBean---->id,name,country,desc,....(tens of attibutes)---->我们不可能每次都set/get(对entity bean),可以用DAO全部返回,但是有时用不到这么多属性,可能只...

CMP中如何根据client需求动态地返回单条纪录的批量属性,举个例子:
CustomerBean---->id,name,country,desc,....(tens of attibutes)---->我们不可能每次都set/get(对entity bean),可以用DAO全部返回,但是有时用不到这么多属性,可能只是去其中几个做列表,全部取回--->overhead,怎么才能根据实际需求返回相应的属性而没有冗余呢?看到书上介绍,HashMap等动态的东西可以做到,BMP中不费力,但CMP中要用到Reflection API, 不会,忘高手指教,有代码最好!呵呵!

|
可不可以这样:
HashMap getFields(Collection fieldCol)
{
  HashMap map = new HashMap(fieldCol.size());
  for (Iterator it = fieldCol; it.hasNext();)
  {
      String fName = (String)it.next();
      try{
          Method mt=cl.getMethod(fName,null ) ;
          Class parameters[]=mt.getParameterTypes() ;
          Class returntype=Classmt.getReturnType() ;
          Class returnvalue=(returntype)=mt.invoke(cl,parameters) ;
      }catch(Exception e){
          //handler your exception
          .....
      }
      //handler your return value and put in into "map"
      .....
      
      return map ;
      
  }
  return map;

|
不好意思少了一行代码
HashMap getFields(Collection fieldCol)
{
  HashMap map = new HashMap(fieldCol.size());
  for (Iterator it = fieldCol; it.hasNext();)
  {
      String fName = (String)it.next();
      try{
          Class cl=this.getClass(); //后来家的.
          Method mt=cl.getMethod(fName,null ) ;
          Class parameters[]=mt.getParameterTypes() ;
          Class returntype=Classmt.getReturnType() ;
          Class returnvalue=(returntype)=mt.invoke(cl,parameters) ;
      }catch(Exception e){
          //handler your exception
          .....
      }
      //handler your return value and put in into "map"
      .....
      
      return map ;
      
  }
  return map;

|
实际上 Entity Bean 在被 find 后也不会 load 所有的属性的。
我的理解是,建议 batch 取回多个属性的值(在一个 method invocation 中),而不是多次调用 getxxx() 方法。
所以你应该在 entity bean 上定义一个 HashMap getFields(Collection fieldCol)
在这个方法中根据传入的 fieldCol 分别调用 getxxx(),将其结果放入到 HashMap 中。
可以用 reflection 得到一个 generic 的方法,如果想偷懒:
ArrayList fields = new ArrayList(3);
fields.add("ID");
fields.add("COUNTRY");
fields.add("DESC");
HashMap getFields(Collection fieldCol)
{
  HashMap map = new HashMap(fieldCol.size());
  for (Iterator it = fieldCol; it.hasNext();)
  {
      String fName = (String)it.next();
      if(fName.equals("ID"))
        map.put(fName, getID());
      else if (fName.equals("COUNTRY"))
         map.put(fName, getCountry());
      ...
  }
  return map;
}

    
 
 

您可能感兴趣的文章:

  • (高分请教,在线等候)关于ejb的问题和如何调试ejb?
  • 请教在JSP里使用EJB的简洁并完整例子的JSP和EJB代码,谢谢!
  • 请教两个EJB的常识问题
  • 各位老大,可以提供一个EJB(BMP)的例子吗? 同时请教PK类的作用?(给例子就有分)
  • 请教高手关于ejb2.0的BMP问题
  • ejb的问题,请教
  • 个伟大哥,小弟有一个简单的问题要请教,关于ejb的
  • 请教::::::我的JB7是否有问题????(有关EJB)
  • 谁用Ias成功实现过ejb呢,我成了!!可是我想实现分布式时却失败了,请教!
  • 和大家请教一下ejb中的几个bean的不同用途?
  • 请教JBUILDER高手!为什么用Jbuilder写EJB, datasource总是提示Driver not on classpath.
  • 请教高手:远程访问EJB的一个问题??(急)
  • 请教:在IBM VisualAge For Java 的 WebSphere测试环境中启动 EJB ...
  • 请教EJB的调试方法。
  • ejb事务问题请教
  • 请教EJB的开发方式。
  • hotenM(CMP)大侠等EJB大侠进来!小问题请教!
  • 非常奇怪的关于EJB的环境配置问题.请教高手!!
  • EJB问题,请教高手(非高手莫进)
  • 请教EJB抱错:Can't start a cloned connection while in manual transaction mode.是怎么意思??谢谢
  • 你们一般怎么debug EJB的组件?如果在jb7里运行一个ejb的容器好象太慢了.有什么好方法吗?
  • ejb可以调用javaBean中的方法吗?
  • 为什么一个ejb的bean中的一个方法在返回一个ResultSet时报错,如何返回一个结果集
  • 我想在EJB的HOME中添加一个自己的方法,这可以实现吗?
  • 求助EJB错误的解决方法,多谢!
  • ejb中的实体bean要不要实现查找方法 “select * from name where name='name'"
  • ejb的finder方法找不到表中char类型数据的问题
  • 在客户端编写程序调用服务器端EJB中的方法该怎么写?
  • 关于Ejb的finders方法的问题(up有分)
  • 好像大家都说在网页中最好不用applet直接访问数据库,那现在正在用Java开发的兄弟们是不是都通过EJB去访问数据库还是用其他方法
  • 用JSP调用EJB 实体bean时 执行 lookup()方法时找不到具体的Bean
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在win2000下weblogic EJB Deployer 配置ejb时出问题
  • Container-ManagedPersistence的EJB设定EJB Relationship的问题
  • 快来救命啊。EJB调用EJB问题。深度郁闷,高分相送。
  • EJB的问题,希望用EJB做过开发的高手回答。
  • weblogic下,session EJB中调用session EJB的问题
  • 救助,关于EJB调用EJB的问题,急急急!!
  • EJB内部调用问题
  • 我已昏了。快来帮帮我,关于EJB的调用问题
  • 请问EJB中的安全问题如何解决?
  • 关于javaBeans和EJB的区别的问题? ??
  • 有关entity EJB的问题
  • 1000分的问题!关于 JBuilder EJB DX Sample 的问题
  • 问EJB高手一个问题
  • 谁知道EJB的部署问题
  • ejb-ref的问题??
  • 高分求教关于EJB中的事务的问题!
  • ejb 菜鸟请进....................... ejb 之弱问题
  • ****※※※※※66分求助EJB部署问题!****&&&&&&&&&&
  • EJB问题,欢迎讨论及指教
  • JSP调用EJB的问题,急!急!急!
  • ejb2与ejb1有什么区别? 或哪有ejb2规范的资料?
  • 如何在一个EJB工程中引用另外一个EJB包中的EJB对象?跟帖都有分!!!
  • EJB2.0提供了许多新特性,包括EJB SQL语言,谁有EJB SQL语言的帮助文档,100分求助!
  • EJB测试工具 Ejb3Unit
  • 奇怪啊,奇怪,为什么我的JB7做EJB时,只要在EJB设计面板上随便做点东西,我的EJB的JAVA的源码就会变的不见了,或者少了很多字段申明??
  • EJB的概述,EJB的相关网站?100分给回答最好的
  • HTML标签参考手册 iis7站长之家
  • EJB的好书,请推荐,我看了<精通EJB2.0>,好薄哟!!
  • 请给介绍一本EJB的书,我刚学~~不想要《精通EJB》,感觉老了点~~
  • 成立java协会不如成立ejb俱乐部,不过大概没有谁会喜欢ejb了
  • jb中建ejb为什么要先弄个EJB module


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3