Java Hibernate看不到已插入的数据
我的问题是,如果数据库已经手动插入,Hibernate不会从中读取任何数据(我使用的是MySQL)。我的意思是,我删除了PATIENTS表,然后Hibernate为我创建了它,然后从PATIENTS.sql插入数据。启动应用程序时,例如show_patients.jsp中没有显示患者。但我仍然可以使用插入的记录通过登录页面访问我的应用程序 以下是我在@Controller中的方法: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
@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()之后才能工作,或者我做错了什么
插入PATIENTS.sql后,您可以通过手动选择查看它吗?您可以尝试激活show_sql=true,然后手动执行查询,并查看发生的情况,如果我正在从MySQL工作台进行手动选择,一切正常。我可以看到所有的数据。当使用MySQL Workbench时,您可以在同一个表中看到两组数据(手动插入和休眠)吗?可以。我认为pasha701是正确的,cashe也参与其中,因为现在我可以在我的应用程序中看到手动插入和hibernate插入的数据。