Hibernate看不到已经插入的数据

时间:2014-06-01 16:49:48

标签: java hibernate spring-mvc dao

我的问题是,如果已经手动插入(我使用MySQL),Hibernate不会从数据库中读取任何数据。我的意思是我删除了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";
} 

这是我在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;
}

我可以在show_patients.jsp中看到任何患者的唯一方法是通过我的应用程序添加新患者,允许Hiberante保存它。所以我的问题是,如果有任何条件,为什么只有在Hibernate的save()之后才能工作,或者我做错了什么?

1 个答案:

答案 0 :(得分:0)

两种变体:

  1. 在Hibernate中打开了查询缓存。检查设置;也许,&#34;逐出&#34;可用于从缓存中删除查询结果。
  2. 也许,WebServer或浏览器设置上存在网页缓存,需要检查。