我使用的是spring+jpa+easyjweb组合!
遇到一个问题
我在源程序中是这样:
public Person findName(Serializable name){
String sqlCmd="select p FROM Person p WHERE p.name="+name;
Query q=this.getEm().createQuery(sqlCmd);
return (Person) q.getSingleResult();
}
然后在PersonAction.java中是这样处理的public Page doCheck(WebForm form,Module m){
     String name=(String)form.get("name");
     String password=(String)form.get("password");
     Person p=this.personService.findName(name);
     if (p!=null)
     {
     if(p.getPassword()!=password)
     form.addResult("msg", "密码不正确");
     else go("list");
     }
但报错是这样的    友情提示!
No entity found for query 
详细请查询http://www.easyjf.com --------------------------------------------------------------------------------
不知道这是什么错误!谢谢了!

解决方案 »

  1.   

    String sqlCmd="FROM Person p WHERE p.name=?1"; 
    Query q=this.getEm().createQuery(sqlCmd).setParameter(1,name);你的sql写错了,结果也就错了,建议还是这样用吧,没有SQL注入问题,效率也高
      

  2.   

    No entity found for query  这个代表数据库没有满足你的查询条件的数据,这个异常太常见了,有时我经常忘记处理它。导致程序异常。有点讨厌的东西,为何不返回null就算了,何必。
      

  3.   

    我知道您是高手,而我只是一个初级学习者!能给我一些关于spring+jpa的例子吗?谢谢了!我自己摸索着太难了!
      

  4.   

    http://www.java2000.net/forumdisplay.jsp?fid=14我收集的JPA的资料再次提示你 
    No entity found for query   这个代表数据库没有满足你的查询条件的数据,并不是什么错误。
    比如你查 id=10 的人员,可是据库里没有这个,就会报这个异常。 所以才讨厌。
      

  5.   

    很奇怪的语句  select p FROM Person p WHERE p.name="+name; 你是打算查询 p.name  对应的密码吗??但是你的select目标却是一个 表名  这么可能会有结果呢。。加入你密码的字段名为password
     sql 语句 应该为 select p.password FROM Person p WHERE p.name="+name; 
      

  6.   

    那是 JPA, 不是普通的SQL,呵呵!楼上的是好意。
      

  7.   

    高手,我那个问题一直还没有解决,我又不断的修改,不过又出现了新问题:我是这样改的:
    @SuppressWarnings("unchecked")
    public Person findName(String name){
    String sqlCmd="SELECT p FROM Person p WHERE p.name=:name";
    Query q=this.getEm().createQuery(sqlCmd).setParameter("name",name);
    Person p=(Person)q.getResultList().get(0);
    if(p==null)
    return new Person();
    else return  p;

    }
    然后报这样的错误,我不知道是怎么了?能帮我一下吗?谢谢了!
    友情提示!
    Index: 0, Size: 0 
    详细请查询http://www.easyjf.com --------------------------------------------------------------------------------
      

  8.   

    Person p=(Person)q.getResultList().get(0); 
    getResultList返回的是list 你用对象接 当然有问题啦