【发布时间】:2014-11-09 11:12:38
【问题描述】:
我有一个通过“id”获取类别的方法,我需要一个类似的方法来通过“名称”获取类别。我通过使用 Hibernate 完成了这些方法。如何修复我的第二种方法以按名称获取类别? 我的源代码如下:
// It works
@Override
public Category getById(int id) {
return (Category) sessionFactory.getCurrentSession().get(Category.class, id);
}
// It doesn't works
@Override
public Category getByName(String name) {
return (Category) sessionFactory.getCurrentSession().
createSQLQuery("SELECT FROM Category WHERE name="+name);
}
第二种方法出现这个错误:
java.lang.ClassCastException: org.hibernate.impl.SQLQueryImpl 不能 被强制转换为 com.sedae.model.Category
这些是我的控制器。
@RequestMapping(value = "/getCategoryById/{id}")
public String getCategoryById(Model model, @PathVariable ("id") int id){
model.addAttribute("category", categoryService.getById(id));
return "/getCategoryById";
}
@RequestMapping(value = "/getCategoryByName/{name}")
public String getCategoryByName(Model model, @PathVariable("name") String name){
model.addAttribute("category", categoryService.getByName(name));
return "/getCategoryByName";
}
提前谢谢大家。
【问题讨论】:
标签: java spring hibernate sessionfactory