Polishing.

Extract SequenceEntityCallbackDelegate from IdGeneratingBeforeSaveCallback. Renameto IdGeneratingEntityCallback and move callback to convert package.

Align return values and associate generated sequence value with the entity. Fix test. Add ticket references to tests.

Extract documentation partials.

See #1955
Original pull request: #2028
This commit is contained in:
Mark Paluch
2025-04-24 09:42:10 +02:00
parent d6121cbfe2
commit 0aecfcee73
11 changed files with 317 additions and 211 deletions

View File

@@ -48,7 +48,7 @@ public class IdGeneratingEntityCallback implements BeforeSaveCallback<Object> {
@Override
public Object onBeforeSave(Object aggregate, MutableAggregateChange<Object> aggregateChange) {
Assert.notNull(aggregate, "aggregate must not be null");
Assert.notNull(aggregate, "Aggregate must not be null");
RelationalPersistentEntity<?> entity = context.getRequiredPersistentEntity(aggregate.getClass());
@@ -56,14 +56,14 @@ public class IdGeneratingEntityCallback implements BeforeSaveCallback<Object> {
return aggregate;
}
RelationalPersistentProperty idProperty = entity.getRequiredIdProperty();
RelationalPersistentProperty property = entity.getRequiredIdProperty();
PersistentPropertyAccessor<Object> accessor = entity.getPropertyAccessor(aggregate);
if (!entity.isNew(aggregate) || delegate.hasValue(idProperty, accessor) || !idProperty.hasSequence()) {
if (!entity.isNew(aggregate) || delegate.hasValue(property, accessor) || !property.hasSequence()) {
return aggregate;
}
delegate.generateSequenceValue(idProperty, accessor);
delegate.generateSequenceValue(property, accessor);
return accessor.getBean();
}