Java Hibernate看不到已插入的数据

Java Hibernate看不到已插入的数据,java,hibernate,spring-mvc,dao,Java,Hibernate,Spring Mvc,Dao,我的问题是,如果数据库已经手动插入,Hibernate不会从中读取任何数据(我使用的是MySQL)。我的意思是,我删除了PATIENTS表,然后Hibernate为我创建了它,然后从PATIENTS.sql插入数据。启动应用程序时,例如show_patients.jsp中没有显示患者。但我仍然可以使用插入的记录通过登录页面访问我的应用程序 以下是我在@Controller中的方法: @RequestMapping(value = "/therapist/showPatients", method

我的问题是,如果数据库已经手动插入,Hibernate不会从中读取任何数据(我使用的是MySQL)。我的意思是,我删除了PATIENTS表,然后Hibernate为我创建了它,然后从PATIENTS.sql插入数据。启动应用程序时,例如show_patients.jsp中没有显示患者。但我仍然可以使用插入的记录通过登录页面访问我的应用程序

以下是我在@Controller中的方法:

@RequestMapping(value = "/therapist/showPatients", method = RequestMethod.GET)
public String showExistingPatients(ModelMap map) {
    List<Patient> patientsList = userService.getAllPatients();
    map.addAttribute("patientsList", patientsList);
    return "therapist/show_patients";
} 
@RequestMapping(value=“/theraper/showPatients”,method=RequestMethod.GET)
公共字符串显示现有患者(模型映射){
List patientsList=userService.getAllPatients();
addAttribute(“patientsList”,patientsList);
返回“治疗师/展示患者”;
} 
以下是我在UserDAOImpl中的方法:

public List<Patient> selectAllPatients(){
    DetachedCriteria criteria = DetachedCriteria.forClass(Patient.class);
    List<Patient> patients = null;
    try{
        patients = getHibernateTemplate().findByCriteria(criteria);
    } catch (DataAccessException ex){
        ex.printStackTrace();
    }
    return patients;
}
public List selectAllPatients(){
DetachedCriteria=DetachedCriteria.forClass(Patient.class);
列出患者=空;
试一试{
患者=getHibernateTemplate().findByCriteria(标准);
}捕获(DataAccessException ex){
例如printStackTrace();
}
返回病人;
}
我能在show_patients.jsp中看到任何患者的唯一方法是通过我的应用程序添加新患者,允许Hibernate保存它。所以我的问题是,为什么只有在Hibernate的save()之后才能工作,或者我做错了什么

  • 查询缓存在Hibernate中打开。检查设置;也许,“逐出”可以用于从缓存中删除查询结果
  • 可能,web服务器或浏览器设置上存在网页缓存,请选中“必需”

  • 插入PATIENTS.sql后,您可以通过手动选择查看它吗?您可以尝试激活show_sql=true,然后手动执行查询,并查看发生的情况,如果我正在从MySQL工作台进行手动选择,一切正常。我可以看到所有的数据。当使用MySQL Workbench时,您可以在同一个表中看到两组数据(手动插入和休眠)吗?可以。我认为pasha701是正确的,cashe也参与其中,因为现在我可以在我的应用程序中看到手动插入和hibernate插入的数据。