hibernate更新对象时是根据id更新对象的字段的,但是有时候是不需要更新所有字段的,只需更新某几个字段。
有3种更新模式:
1、全部更新 默认模式。除了null外,都更新 exclude和include例外Updater.UpdateMode.MIDDLE
2、最小化更新模式。所有字段都不更新。include例外 Updater.UpdateMode.MIN
3、最大化更新模式。所有字段都更新(包括null)。exclude例外 Updater.UpdateMode.MAX
例子:
//只更新jobAssign对象的status字段
public void submitJob(JobAssign jobAssign) {
Updater<JobAssign> jobUpdater=Updater.create(jobAssign, Updater.UpdateMode.MIN);
jobUpdater.include("status");
this.updateByUpdater(jobUpdater);
}
//除jobAssign对象中的teaId、teaName字段外更新其他字段
@Override
public void editJobAssign(JobAssign jobAssign) {
Updater<JobAssign> jobUpdater=Updater.create(jobAssign, Updater.UpdateMode.MAX);
jobUpdater.exclude("teaId");
jobUpdater.exclude("teaName");
this.updateByUpdater(jobUpdater);
}