这个程序是MasterEJB 的例子,他原来的发布版本是6.1的。我现在发布到weblogic7.1就不行了。我还改了数据库为pointbase。

解决方案 »

  1.   

    SELECT OBJECT(a) FROM Product AS a WHERE name = ?1
    改为:
    SELECT a FROM Product as a WHERE a.name = ?1
      

  2.   

    SELECT OBJECT(a) FROM Product AS a WHERE name = ?1
    在这句话里的Product AS a 和 OBJECT(a) 两个中的a是不是冲突了啊?
    你可以把后面的Product AS a 改成 Product AS s或别的试试!!!
      

  3.   

    SELECT a FROM Product as a WHERE a.name = ?1
    等号前后空格要注意,,
      

  4.   

    While trying to process Query
            Method Name: findByName
            Parameter Types: (java.lang.String)
            EJB Query: SELECT OBJECT(a) FROM Product AS a WHERE name = ?1
            )
    这个是EJB QL的错误。是因为在WHERE CLAUSE中没法辨认name是谁的?因为WHERE CLAUSE中也需要字段导航。
    所以只需要把以上的ejb ql 改为如下一定ok:
    SELECT OBJECT(a) FROM Product AS a WHERE a.name = ?1