我有一个方法来通过它的"id"获得一个Category,我需要一个类似的方法来通过它的"名称"获得一个Category.我使用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);
}
Run Code Online (Sandbox Code Playgroud)
我有第二种方法的错误:
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";
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢大家.
我正在尝试基于以下内容实现Manager实体的部分更新:
实体
public class Manager {
private int id;
private String firstname;
private String lastname;
private String username;
private String password;
// getters and setters omitted
}
Run Code Online (Sandbox Code Playgroud)
Controller中的SaveManager方法
@RequestMapping(value = "/save", method = RequestMethod.PATCH)
public @ResponseBody void saveManager(@RequestBody Manager manager){
managerService.saveManager(manager);
}
Run Code Online (Sandbox Code Playgroud)
在Dao impl中保存对象管理器.
@Override
public void saveManager(Manager manager) {
sessionFactory.getCurrentSession().saveOrUpdate(manager);
}
Run Code Online (Sandbox Code Playgroud)
保存对象时,用户名和密码已正确更改,但其他值为空.
所以我需要做的是更新用户名和密码并保留所有剩余的数据.
我有一个从服务中获取的数组,但在控制器中我在forEach()函数中得到一个空值.这是代码.
调节器
这里,'products'和'copyProducts'都是空的.我需要使用'copyProducts'数组到forEach()函数中.
app.controller("controllerApp", function($scope, serviceApp){
var products = serviceApp.query();
$scope.copyProducts = products;
angular.forEach($scope.copyProducts, function(value, key){
console.log("object: "+value);
})
});
Run Code Online (Sandbox Code Playgroud)
服务
app.factory("serviceApp", function($resource){
return $resource("products.json", {}, {
getAll: {
method: "GET",
isArray: true
}
})
})
Run Code Online (Sandbox Code Playgroud)