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);
}