findByPrimaryKey方法的参数和你客户端调用时候传递的参数类型不一致吧?

解决方案 »

  1.   

    Short != short,检查一下看看?!也许你传的是Short,find方法参数是short
      

  2.   

    to  lihongwansui(苍茫云海):
    能说明一下Short != short, 区别在哪里么?
      

  3.   

    我原来传的是Short,但后来改为short,还是一样的错误郁闷ing,这个问题困扰了我两天了
      

  4.   

    我用的是CMP2.0 Entity Bean
      

  5.   

    Integer 和 int 什么关系?像int,short,long这些是原始对象,英文直译是这个意思。
    我觉得你还是仔细检查你的代码,一定是参数类型问题。
      

  6.   

    to   zkjbeyond(jigi) :
     你写了主键类了吗!还要写主键类吗,我直接传主键的值不行么?
    如果不行,主键类要如何编写?我把参数类型改为short后还是这样的错误
      

  7.   

    entity中的主键必须是类。如果用单一的字段(cmp)映射主键类,就该使用它们类型的相应封装类
    int->Integer double->Double....如果是String则不需要
      

  8.   

    //-----------------
    method findByPrimaryKey(java.lang.Short) not found in interface testent.EmployeeHome 
    //-----------------
    把你的HOME接口的代码贴出来吧...
      

  9.   

    EmployeeHome.java代码如下:package testent;import javax.ejb.*;
    import java.util.*;
    import java.math.*;public interface EmployeeHome extends javax.ejb.EJBLocalHome {
      public Employee create(BigDecimal id) throws CreateException;
      public Employee findByPrimaryKey(BigDecimal id) throws FinderException;
    }
    entity中的主键必须是类?这不一定吧,高手指教!
      

  10.   

    不知道代码是不是已经改过了,你的主键是BigDecimal,你传入的是Short当然找不到了。
      

  11.   

    "原型作主键"是什么意思,你是说用int、short等原形么?
      

  12.   

    加一句:
    java.math.BigDecimal key=new java.math.BigDecimal(empno);
    Employee emp = empHome.findByPrimaryKey(key);应该就能ok了
      

  13.   

    to coolyzg:      java.math.BigDecimal key = new java.math.BigDecimal(EmpNo);  //line 35
          Employee emp = emphome.findByPrimaryKey(key);我按照你的意思修改了一下,现在提示如下:
    "DemoSesBean.java": Error #: 300 : constructor BigDecimal(java.lang.Short) not found in class java.math.BigDecimal at line 35, column 48
      

  14.   

    这是说没有BigDecimal(java.lang.Short)这种构造函数
    老兄,英语还可以吧    ^_^
    BigDecimal的构造函数有BigDecimal(java.lang.String)  、BigDecimal(java.lang.Integer)....................
      

  15.   


    错了
    没有BigDecimal(java.lang.Integer)这种
    应该是BigDecimal(double d)
    还有:BigDecimal(BigInteger val) 
          BigDecimal(BigInteger unscaledVal, int scale)