Hibernate中记录的更新

Hibernate中记录的更新,hibernate,Hibernate,我是新来冬眠的,我面临一个问题。 我已经从数据库中获取了记录,并在Jsp表单上显示了这些值 我想更新我显示的一些值 我将实体的ID设置为隐藏表单字段 当我点击submit时,表单上没有的值被设置为null 每次我必须更新记录时,我必须再次手动将所有值设置为对象,然后保存 范例 我的用户实体具有以下字段 身份证件 名字 姓氏 更新日期 日期创建 在我的jsp中,我只有两个字段 名字 姓氏 关于隐藏表单字段 身份证 在我的控制器中,我创建用户的新obj并设置这三个值 我正在使用合并方法更新我的记录

我是新来冬眠的,我面临一个问题。 我已经从数据库中获取了记录,并在Jsp表单上显示了这些值

我想更新我显示的一些值

我将实体的ID设置为隐藏表单字段

当我点击submit时,表单上没有的值被设置为null

每次我必须更新记录时,我必须再次手动将所有值设置为对象,然后保存

范例

我的用户实体具有以下字段 身份证件 名字 姓氏 更新日期 日期创建

在我的jsp中,我只有两个字段 名字 姓氏 关于隐藏表单字段 身份证

在我的控制器中,我创建用户的新obj并设置这三个值 我正在使用合并方法更新我的记录

论合并 DateCreated和DateUpdate正在变为null

如何在不获取记录、设置修改后的值并保存它的情况下实现它

问候 Ramandeep S

用户;
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
session=//打开一个会话 Criteria=session.createCriteria(User.class).add(Restrictions.idEq(id)); List objList=criteria.List(); if(objList==null | | objList.size()==0){ } 否则{ user=objList.get(0); } //user.setproperties()//等 //使用会话保存它

您需要从数据库获取对象。

要么加载对象并使用hibernate(最安全的方法)进行更新,要么运行传统的更新查询,即sql 第二种方法可能更快,但如果不存在匹配项,则有可能不更新任何内容。

假设您有要更新到数据库中的“employee”对象

步骤:

  • 更新之前,从数据库中获取employee对象 employee=getEmployee(id)

  • 获取employee对象后,请更新您的条目,然后按如下方式保存: employee.setName(“XYZ”); 更新员工(员工)

  • 在这里,您不必一次又一次地设置每个值