来自所选实体的查询结果返回null

时间:2013-05-10 23:21:42

标签: eclipse jpa eclipselink

我必须从datatable检索所选患者的最后一次访问,问题是查询总是返回bull,这里是负责的代码:

public class PatientDao implements Serializable {
......
    public List<String> findWithQuery(String query ,int id) {

 Query q=   this.getEntityManager().createQuery(query).setParameter("id",id);

    return q.getResultList(); 
}
}
......
}


@ManagedBean
@SessionScoped
@SuppressWarnings("serial")
public class PatientCtrl implements Serializable{
......
private static Patient selectedpatient = new Patient();
private static PatientDao pDao = new PatientDao();
private  static String lv   ;
......
public  void lastVisit()
{ 

this.setLv( pDao.findWithQuery("select max(v.date) from Visite v where v.patient.id = :id      ",selectedpatient.getId()).toString().replaceAll("^\\[", "").replaceAll("\\]$", ""));



 }



<h3>Dernière visite</h3>
       <p:outputLabel  value="#{patientCtrl.lv}"   />

它始终为空

1 个答案:

答案 0 :(得分:1)

这是一个编码错误,因为您选择带有patient.id = 1和患者= p的Visite。除非= p.id = 1,否则将得不到任何结果,因此为null。我相信你的意思是使用setParameter(“id”,p),但是使用v.patient.id =:id和v.patient =:p似乎是多余的,无论如何都应该删除它。