WHERE i.sname=?1EJB QL语句的大小写是不是一样的?
要注意 student , i.sname 要和你的实体BEAN连接的表名和字段相同,大小写等要一致的.如果我说错了,请把你的错误COPY出来,看一下 ^_^

解决方案 »

  1.   

    Object关键字不可以省略吧?SELECT OBJECT(X) FROM。
      

  2.   

    表student(sname,sno,sage,clno)
       不好意思,我现在在网吧,暂时不能copy错误信息。
      

  3.   

    SELECT i FROM student AS i WHERE i.sname=?
    应为: 
    SELECT OBJECT(i) FROM StudentBeaan AS i WHERE i.sname=?1
    解释: 
    EJB-QL为大小写敏感,不能随便写FROM后面根的为Schema name,在你创建ejb的时候可以指定,不一定就是真实的数据表名查询的参数可以用 ?1,?2...?n指定
      

  4.   

    不行啊.我又重新做了一个.对表grade(sno,cno,grade)建CMP,刚开始我没建find函数,编译,布署都正常,但一定义find函数就不行了.错误信息拷贝如下:
    "xie.ejbgrpx": Spaces in the temporary directory path may cause WebLogic EJBC utility to produce fatal compile errors.
    "xie.ejbgrpx": D:\bea7\jdk131_02\bin\javaw -classpath "D:\bea7\weblogic700\server\lib\weblogic.jar;D:\JBuilder8\lib\msbase.jar;D:\JBuilder8\lib\mssqlserver.jar;D:\JBuilder8\lib\msutil.jar;"  weblogic.ejbc -keepgenerated -compiler D:/JBuilder8/bin/bcjW D:/JBuilder8/xsm/xie/xie.jar.jar D:/JBuilder8/xsm/xie/xie.jar"xie.ejbgrpx": ERROR: Error from ejbc: Error while reading 'META-INF/weblogic-cmp-rdbms-jar.xml'. The error was:
    "xie.ejbgrpx":  
    "xie.ejbgrpx": weblogic.ejb20.cmp.rdbms.finders.IllegalExpressionException:
    "xie.ejbgrpx": While trying to process Query
    "xie.ejbgrpx": Method Name: findByGrade
    "xie.ejbgrpx": Parameter Types: (java.lang.String)
    "xie.ejbgrpx": EJB Query: SELECT  i  FROM  Grade  AS  i  WHERE  i.grade=?1
    "xie.ejbgrpx": )
    "xie.ejbgrpx": Could not parse EJB QL expression: SELECT  i  FROM  Grade  AS  i  WHERE  i.grade=?1
    "xie.ejbgrpx": ERROR: ejbc found errors
    其中,find函数我的定义如下:
    findname:findByGrade
    Return type:GradeRemote
    input parameters:java.lang.String grade
    Home interfaces:home/localhome
    Query:SELECT OBJECT(i) FROM Grade AS i WHERE i.grade=?1
    建的CMP为Grade,而数据库中的表为grade,各位大侠帮忙看看啊,到底是错在哪里了?