我正在使用hibernate-4.3.11.Final。
如您所知,在数据库中有两种更新方式。
第一个是在存储库中使用hql update,例如:
update Account e
set e.count= 12
where e.id = 123
第二种方式是此对象是通过id从数据库加载的,并且通过此Object的setter方法设置计数(例如,在服务中):
@Override
@Transactional
public boolean changeTempCount(Integer id, Integer count) {
Account model = iAccountRepository.loadById(id);
model.setCount(count);
super.save(model);
return true;
}
他们两人都成功地工作了 我想知道他们每个人都比另一个更好或者有什么不同 之间的那些
答案 0 :(得分:0)
首先,您真正需要了解的一件事是,super.save(model);
的调用是不必要的。 Hibernate透明地写入对实体所做的更改,而不需要显式保存任何内容。 Hibernate从数据库加载的实体(使用get(/ / load()方法之一,或查询,或通过关联导航)是托管,这意味着Hibernate跟踪他们的更改并保存它们对你而言。
现在,关于你的问题;
@Version
- 带注释的字段):不会检查或更新版本