你试一下不用别称p,直接用表名:select object(person) from person where person.sex='1'

解决方案 »

  1.   

    person 是什么?
    要知道这里必须是EJB的名字,而不是表名
      

  2.   

    还是不行呀,用>(大于),<(小于)就可以,=(等于)就不行,
    谁能帮我,多谢!
      

  3.   

    select object(p) from person p where p.sex='1'上面的语法本身是错误的,
    EJBQL和SQL是两种不同语法。EJBQL的where子句不支持 p.sex='1' 这种形式
      

  4.   

    用 = 不行 是因为,
    你这条select object(p) from person p where p.sex='1'
    所对应的find方法(或者select 方法)的返回值被定义为 collections类型,因此你用where p.sex='1'这种形式通不过
      

  5.   

    where p.sex = ?
    而且=两边必须有空格
      

  6.   

    写带参数的方法,把要查询的值传进来
    where p.sex = ?
    而且=两边必须有空格