Hibernate可以更新单个属性吗?

时间:2011-02-27 05:58:02

标签: java hibernate

我有一个带有多个属性的hibernate类,我听说NHibernate跟踪文件中的属性,只更新那些已更改的属性。 Hibernate中是否有类似的功能?

我试图让它只使用一个简单的类加载 - 然后设置一个属性 - 然后刷新更改。但是,这无误地更新了类中的所有属性。

3 个答案:

答案 0 :(得分:4)

您需要通过注释或类映射将dynamic-update属性设置为true,这将排除Hibernate的SQL更新语句中未修改的属性。你可以找到一个很好的参考here。默认情况下,动态更新设置为false,以便向后兼容,因为它引入了一些新功能。

答案 1 :(得分:0)

您可以先从db获取Entity然后更新...尝试此示例..

public final void updateEntity(EntityName entity){

  //get entity from db by id
  EntityName dbEntity = session.get(EntityName.class, item.getProductId());

   //set property
  dbEntity.setStatus(entity.getStatus());

  //and update
  session.update(dbEntity);

}

答案 2 :(得分:0)

您可以在实体级别使用 @DynamicUpdate 注释,如documentation所示。