我有一个带有多个属性的hibernate类,我听说NHibernate跟踪文件中的属性,只更新那些已更改的属性。 Hibernate中是否有类似的功能?
我试图让它只使用一个简单的类加载 - 然后设置一个属性 - 然后刷新更改。但是,这无误地更新了类中的所有属性。
答案 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所示。