Patch Object
The framework supports incremental updates on numeric fields using special suffixes in the patch object.
Suffix Mapping
For example, to increase a user's score by a certain amount without first reading the original value, you can use a field like scoreAe
(short for Add/Extend).
public class UserPatch extends UserEntity {
private Integer scoreAe;
}
UserEntity userPatch = UserPatch.builder().id(1).valid(true).scoreAe(20).build();
userDataAccess.patch(userPatch);
// SQL: UPDATE t_user SET valid = ?, score = score + ? WHERE id = ?
Annotation Mapping
Use @Clause
to define a custom condition:
public class UserPatch extends UserEntity {
@Clause("score = score + ?")
private Integer scoreAe;
}
Last updated
Was this helpful?