我是新的bie来休眠,我面临一个问题。 我从数据库中获取了记录并在Jsp表单上显示了值。
我想更新我显示的一些值
我创建了实体隐藏表单字段的ID。
当我点击提交时,表格上没有的值被设置为空。
每次我必须更新记录时我必须手动将所有值再次设置到对象然后保存
实施例
我的用户实体包含以下字段 ID 名字 姓 dateUpdated dateCreated会
在我的jsp中我只有两个字段 名字 姓 并在隐藏的表格领域 ID
在我的控制器中,我正在创建用户的新对象并设置这三个值 我正在使用合并方法更新我的记录。
关于合并 DateCreated和dateUpdated变为空!
如何在不获取记录并设置修改后的值然后保存的情况下实现它
此致 Ramandeep S
答案 0 :(得分:0)
User user;
session = //Open a session
Criteria criteria = session.createCriteria(User.class).add(Restrictions.idEq(id));
List<T> objList = criteria.list();
if(objList == null || objList.size() == 0) {
}
else {
user = objList.get(0);
}
//user.setproperties() //etc
//save it using the session
您需要从数据库中获取对象。
答案 1 :(得分:0)
加载对象并使用hibernate更新(最安全的方法)或运行传统的更新查询,即sql 第二种方法可能更快,但如果没有匹配则冒着不更新任何内容的风险。
答案 2 :(得分:0)
假设您要将“employee”对象更新到数据库中。
步骤:
在更新之前,从数据库中获取员工对象 employee = getEmployee(id);
获得员工对象后,请更新您的条目,然后将其保存为: employee.setName(“XYZ”); updateEmployee(雇员);
在这里,您不必一次又一次地设置每个值。