AccountPK pk=new AccountPK("666888");
 Account account=accountHome.findByPrimaryKey(pk);难道不能
 这样用吗????
???????????????????????????????????????

解决方案 »

  1.   

    以前试过同样情况(用的是JDBC-ODBC桥), 后改为JDBC驱动就没问题了
      

  2.   

    兄弟,你虽然执行了查询,但没有用查询出来的结果集set你的bean属性呀,别忘了你用的是BMP,container不会知道怎么解析你的ResultSet
      

  3.   

    BMP的findByPrimarukey方法应该不用set bean属性,容器会自动set。
    你的AccountPK是怎么定义的?把代码贴出来看看
      

  4.   

    kynix(kynix) 兄,容器不会set bean属性的,这是BMP和CMP的根本区别.
    楼主,我想你可能是没有把查出来的结果集set给 bean属性,这个set动作最好在ejbLoad()方法中完成,先用entityContext.getPrimaryKey得到主键,然后执行查询,将结果set到bean属性.
      

  5.   

    lzl123(潜龙)兄:
        不好意思,我没把话说清楚。在BMP的Finder方法中返回一个PrimaryKey值,容器会调用ejbLoad方法,这一步是自动的。但是,在ejbLoad方法中对bean属性进行set操作必须手工进行,具体方法如你所说。这与CMP不同(CMP会在ejbLoad中自动生成set bean属性的语句,省去了手工写代码的麻烦)。楼主在ejbLoad中是否没进行这些操作?
      

  6.   

    lzl123(潜龙) 说得的对的
    如果你在rs.next()后面加上this.Xiwbz = rs.getString(“Xiwbz”);
    就能取到了,我也是初学者,前2天也遇到过这样的问题
      

  7.   

    你的ejbFindByPrimaryKey有问题,你只是做了查询,但你并没有从结果集中取值,当然没有结果可以得到了