例如你的本地接口中定义的是
public Collection findByNameSex(String name, short sex) ......
的话,可以在where clause中写
WHERE NAME(字段名)=:name AND SEX(字段名)= :sex

解决方案 »

  1.   

    容器管理持久性的Entity bean的finder方法在Home接口或LocalHome接口中定义。如:
      public Collection findByNameSex(String name, short sex)throws FinderException,RemoteException;
     Finder方法无需在bean实现类中实现,只要在Descriptor中用EJB-QL定义即可。例如,bean的Abstract Schema Name为Person,则上述方法的EJB-QL为:
      Select DISTINCT OBJECT(p) from Person as p
     where p.name=?1 AND p.sex=?2
      

  2.   

    to Hubert我试过你说的方法不行!我用的是EJB1.1!
      

  3.   

    怎么个不行法?说清楚一点啊。
    我用的是jb6+bas5.0,也是EJB1.1标准。一直是这样用的,没问题啊
      

  4.   

    我用的是bes4.5可能就这点差别!我经过摸索已经找到了解决方法。就是在finders页中定义方法时,指定每个参数的actual name,就是对应实体bean中的那个字段,where clause不用写任何的语句。然后执行就可以了!
      

  5.   

    上面我说的方法有误!还是Hubert说的比较对!但是我用他的方法,是两个参数时可以,三个参数就不行不知为何?
      

  6.   

    我经过摸索已经找到了解决方法。就是在finders页中定义方法时,指定每个参数的actual name,就是对应实体bean中的那个字段,where clause写如下语句:
    WHERE SFZ_ID(数据库字段名)=:sfzId(bean 中字段名) AND JSH_ID=:jshId 。然后执行就可以了!