Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -493,8 +493,7 @@ default Object[] extractConcreteTypeStateValues(
Map<AttributeMapping, DomainResultAssembler> assemblerMapping,
RowProcessingState rowProcessingState) {
// todo (6.0) : getNumberOfAttributeMappings() needs to be fixed for this to work - bad walking of hierarchy
final Object[] values = new Object[ getNumberOfAttributeMappings() ];

final var values = new Object[ getNumberOfAttributeMappings() ];
forEachAttributeMapping(
attribute -> {
final DomainResultAssembler<?> assembler = assemblerMapping.get( attribute );
Expand All @@ -509,7 +508,6 @@ default Object[] extractConcreteTypeStateValues(
values[attribute.getStateArrayPosition()] = value;
}
);

return values;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ public Object[] getValues(Object compositeInstance) {
}

protected Object[] getAttributeValues(Object compositeInstance) {
final Object[] results = new Object[getNumberOfAttributeMappings()];
final var results = new Object[getNumberOfAttributeMappings()];
for ( int i = 0; i < results.length; i++ ) {
results[i] = getValue( compositeInstance, i );
}
Expand Down Expand Up @@ -659,7 +659,7 @@ public Object disassemble(Object value, SharedSessionContractImplementor session
return null;
}
final int size = attributeMappings.size();
final Object[] result = new Object[ size ];
final var result = new Object[ size ];
for ( int i = 0; i < size; i++ ) {
final var attributeMapping = attributeMappings.get( i );
final Object object = attributeMapping.getValue( value );
Expand Down Expand Up @@ -708,7 +708,7 @@ public <X, Y> int forEachDisassembledJdbcValue(
}
}
else {
final Object[] values = (Object[]) value;
final var values = (Object[]) value;
for ( int i = 0; i < attributeMappings.size(); i++ ) {
final var mapping = attributeMappings.get( i );
span += mapping.forEachDisassembledJdbcValue( values[i], span + offset, x, y, valuesConsumer, session );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ else if ( state.length == attributes.size() ) {
return state;
}
else {
final Object[] values = new Object[attributes.size()];
final var values = new Object[attributes.size()];
for ( int i = 0; i <= attributes.size() - 1; i++ ) {
final var attributeMapping = attributes.get( i );
values[i] = state[attributeMapping.getStateArrayPosition()];
Expand All @@ -119,7 +119,7 @@ else if ( state.length == attributes.size() ) {

@Override
public Object[] extractNaturalIdFromEntity(Object entity) {
final Object[] values = new Object[ attributes.size() ];
final var values = new Object[ attributes.size() ];
for ( int i = 0; i < attributes.size(); i++ ) {
values[i] = attributes.get( i ).getPropertyAccess().getGetter().get( entity );
}
Expand All @@ -133,7 +133,7 @@ public Object[] normalizeInput(Object incoming) {
}
else if ( incoming instanceof Map<?,?> valueMap ) {
final var attributes = getNaturalIdAttributes();
final Object[] values = new Object[ attributes.size() ];
final var values = new Object[ attributes.size() ];
for ( int i = 0; i < attributes.size(); i++ ) {
values[ i ] = valueMap.get( attributes.get( i ).getAttributeName() );
}
Expand Down Expand Up @@ -169,7 +169,7 @@ public int calculateHashCode(Object value) {
return 0;
}
else {
final Object[] values = (Object[]) value;
final var values = (Object[]) value;
int hashcode = 0;
for ( int i = 0; i < attributes.size(); i++ ) {
final Object o = values[i];
Expand Down Expand Up @@ -222,8 +222,8 @@ public void verifyFlushState(Object id, Object[] currentState, Object[] loadedSt

@Override
public boolean areEqual(Object one, Object other, SharedSessionContractImplementor session) {
final Object[] oneArray = (Object[]) one;
final Object[] otherArray = (Object[]) other;
final var oneArray = (Object[]) one;
final var otherArray = (Object[]) other;
final var naturalIdAttributes = getNaturalIdAttributes();
for ( int i = 0; i < naturalIdAttributes.size(); i++ ) {
if ( !naturalIdAttributes.get( i ).areEqual( oneArray[i], otherArray[i], session ) ) {
Expand Down Expand Up @@ -387,7 +387,7 @@ public Object disassemble(Object value, SharedSessionContractImplementor session
}
else if ( value instanceof Object[] incoming ) {
assert incoming.length == attributes.size();
final Object[] outgoing = new Object[incoming.length];
final var outgoing = new Object[incoming.length];
for ( int i = 0; i < attributes.size(); i++ ) {
outgoing[i] = attributes.get( i ).disassemble( incoming[i], session );
}
Expand Down Expand Up @@ -630,7 +630,7 @@ private AssemblerImpl(ImmutableFetchList fetches, JavaType<Object[]> jtd, Assemb

@Override
public Object[] assemble(RowProcessingState rowProcessingState) {
final Object[] result = new Object[ subAssemblers.length ];
final var result = new Object[ subAssemblers.length ];
for ( int i = 0; i < subAssemblers.length; i++ ) {
result[ i ] = subAssemblers[i].assemble( rowProcessingState );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ public <X, Y> int forEachDisassembledJdbcValue(
}
else {
if ( value.getClass().isArray() ) {
final Object[] values = (Object[]) value;
final var values = (Object[]) value;
valuesConsumer.consume(
offset,
x,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -871,7 +871,7 @@ protected Object[] getAttributeValues(Object compositeInstance) {
}
else {
final int numberOfAttributes = getNumberOfAttributeMappings();
final Object[] results = new Object[numberOfAttributes + 1];
final var results = new Object[numberOfAttributes + 1];
final var concreteEmbeddableType = findSubtypeBySubclass( compositeInstance.getClass().getName() );
int i = 0;
for ( ; i < numberOfAttributes; i++ ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ public EmbeddableValuedModelPart getEmbeddedPart() {
public Object getIdentifier(Object entity, SharedSessionContractImplementor session) {
final Object id = representationStrategy.getInstantiator().instantiate( null );

final Object[] propertyValues = new Object[virtualIdEmbeddable.getNumberOfAttributeMappings()];
final var propertyValues = new Object[virtualIdEmbeddable.getNumberOfAttributeMappings()];

for ( int i = 0; i < propertyValues.length; i++ ) {
final var attributeMapping = virtualIdEmbeddable.getAttributeMapping( i );
Expand Down Expand Up @@ -203,7 +203,7 @@ public void setIdentifier(Object entity, Object id, SharedSessionContractImpleme
final var entityDescriptor =
factory.getMappingMetamodel()
.getEntityDescriptor( entity.getClass() );
final Object[] propertyValues = new Object[attributeMappings.size()];
final var propertyValues = new Object[attributeMappings.size()];
virtualIdEmbeddable.forEachAttribute(
(position, virtualIdAttribute) -> {
final var idClassAttribute = attributeMappings.get( position );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ public Object getIdentifier(Object entity, MergeContext mergeContext) {
if ( hasContainingClass() ) {
final Object id = identifierValueMapper.getRepresentationStrategy().getInstantiator().instantiate( null );
final var embeddableTypeDescriptor = getEmbeddableTypeDescriptor();
final Object[] propertyValues = new Object[embeddableTypeDescriptor.getNumberOfAttributeMappings()];
final var propertyValues = new Object[embeddableTypeDescriptor.getNumberOfAttributeMappings()];
for ( int i = 0; i < propertyValues.length; i++ ) {
final var attributeMapping = embeddableTypeDescriptor.getAttributeMapping( i );
final Object object = attributeMapping.getValue( entity );
Expand Down Expand Up @@ -247,7 +247,7 @@ private static Object getIfMerged(Object o, MergeContext mergeContext) {

@Override
public void setIdentifier(Object entity, Object id, SharedSessionContractImplementor session) {
final Object[] propertyValues = new Object[identifierValueMapper.getNumberOfAttributeMappings()];
final var propertyValues = new Object[identifierValueMapper.getNumberOfAttributeMappings()];
final var embeddableTypeDescriptor = getEmbeddableTypeDescriptor();
for ( int position = 0; position < propertyValues.length; position++ ) {
final var attribute = embeddableTypeDescriptor.getAttributeMapping( position );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ public Object getIdentifier(Object entity, MergeContext mergeContext) {
return lazyInitializer.getInternalIdentifier();
}
final var embeddableTypeDescriptor = getEmbeddableTypeDescriptor();
final Object[] propertyValues = new Object[embeddableTypeDescriptor.getNumberOfAttributeMappings()];
final var propertyValues = new Object[embeddableTypeDescriptor.getNumberOfAttributeMappings()];
for ( int i = 0; i < propertyValues.length; i++ ) {
final var attributeMapping = embeddableTypeDescriptor.getAttributeMapping( i );
final Object o = attributeMapping.getValue( entity );
Expand Down Expand Up @@ -281,7 +281,7 @@ private static Object getIfMerged(Object o, MergeContext mergeContext) {

@Override
public void setIdentifier(Object entity, Object id, SharedSessionContractImplementor session) {
final Object[] propertyValues = new Object[identifierValueMapper.getNumberOfAttributeMappings()];
final var propertyValues = new Object[identifierValueMapper.getNumberOfAttributeMappings()];
final var embeddableTypeDescriptor = getEmbeddableTypeDescriptor();
for ( int i = 0; i < propertyValues.length; i++ ) {
final var attribute = embeddableTypeDescriptor.getAttributeMapping( i );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ public void validateInternalForm(Object naturalIdValue) {
final var naturalIdValueClass = naturalIdValue.getClass();
if ( naturalIdValueClass.isArray() && !naturalIdValueClass.getComponentType().isPrimitive() ) {
// be flexible
final Object[] values = (Object[]) naturalIdValue;
final var values = (Object[]) naturalIdValue;
if ( values.length == 1 ) {
naturalIdValue = values[0];
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public InstantiatorAdapter(VirtualIdEmbeddable virtualIdEmbeddable, EntityMappin
public Object instantiate(ValueAccess valuesAccess) {
final Object instantiated = entityInstantiator.instantiate();
if ( valuesAccess != null ) {
final Object[] values = valuesAccess.getValues();
final var values = valuesAccess.getValues();
if ( values != null ) {
virtualIdEmbeddable.setValues( instantiated, values );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@
import org.hibernate.sql.model.ast.TableUpdate;
import org.hibernate.sql.model.ast.builder.CollectionRowDeleteByUpdateSetNullBuilder;
import org.hibernate.sql.model.ast.builder.TableUpdateBuilderStandard;
import org.hibernate.sql.model.internal.MutationOperationGroupFactory;
import org.hibernate.sql.model.internal.TableUpdateStandard;
import org.hibernate.sql.model.jdbc.JdbcMutationOperation;

Expand All @@ -68,6 +67,7 @@
import static org.hibernate.persister.collection.mutation.RowMutationOperations.DEFAULT_RESTRICTOR;
import static org.hibernate.persister.collection.mutation.RowMutationOperations.DEFAULT_VALUE_SETTER;
import static org.hibernate.sql.model.ast.builder.TableUpdateBuilder.NULL;
import static org.hibernate.sql.model.internal.MutationOperationGroupFactory.singleOperation;

/**
* A {@link CollectionPersister} for {@linkplain jakarta.persistence.OneToMany
Expand Down Expand Up @@ -198,7 +198,7 @@ private void writeIndex(

final var mutationExecutor = mutationExecutorService.createExecutor(
() -> new BasicBatchKey( getNavigableRole() + "#INDEX" ),
MutationOperationGroupFactory.singleOperation( MutationType.UPDATE, this, updateRowOperation ),
singleOperation( MutationType.UPDATE, this, updateRowOperation ),
session
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ public abstract class AbstractUpdateRowsCoordinator implements UpdateRowsCoordin
public AbstractUpdateRowsCoordinator(CollectionMutationTarget mutationTarget, SessionFactoryImplementor sessionFactory) {
this.mutationTarget = mutationTarget;
this.sessionFactory = sessionFactory;
this.mutationExecutorService = sessionFactory.getServiceRegistry().getService( MutationExecutorService.class );
mutationExecutorService =
sessionFactory.getServiceRegistry()
.getService( MutationExecutorService.class );
}

@Override
Expand All @@ -44,7 +46,7 @@ public void updateRows(Object key, PersistentCollection<?> collection, SharedSes
MODEL_MUTATION_LOGGER.updatingCollectionRows( mutationTarget.getRolePath(), key );

// update all the modified entries
int count = doUpdate( key, collection, session );
final int count = doUpdate( key, collection, session );

MODEL_MUTATION_LOGGER.updatedCollectionRows( count, mutationTarget.getRolePath(), key );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,16 @@
*/
package org.hibernate.persister.collection.mutation;

import java.util.Iterator;

import org.hibernate.collection.spi.PersistentCollection;
import org.hibernate.engine.jdbc.batch.internal.BasicBatchKey;
import org.hibernate.engine.jdbc.mutation.JdbcValueBindings;
import org.hibernate.engine.jdbc.mutation.MutationExecutor;
import org.hibernate.sql.model.internal.MutationOperationGroupFactory;
import org.hibernate.engine.jdbc.mutation.spi.MutationExecutorService;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.metamodel.mapping.PluralAttributeMapping;
import org.hibernate.persister.collection.CollectionPersister;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.sql.model.MutationOperationGroup;
import org.hibernate.sql.model.MutationType;
import org.hibernate.sql.model.jdbc.JdbcMutationOperation;

import static org.hibernate.sql.model.ModelMutationLogging.MODEL_MUTATION_LOGGER;
import static org.hibernate.sql.model.internal.MutationOperationGroupFactory.singleOperation;

/**
* @author Steve Ebersole
Expand All @@ -44,8 +37,8 @@ public DeleteRowsCoordinatorStandard(
this.rowMutationOperations = rowMutationOperations;
this.deleteByIndex = deleteByIndex;

this.batchKey = new BasicBatchKey( mutationTarget.getRolePath() + "#DELETE" );
this.mutationExecutorService = serviceRegistry.getService( MutationExecutorService.class );
batchKey = new BasicBatchKey( mutationTarget.getRolePath() + "#DELETE" );
mutationExecutorService = serviceRegistry.getService( MutationExecutorService.class );
}

@Override
Expand All @@ -63,26 +56,26 @@ public void deleteRows(PersistentCollection<?> collection, Object key, SharedSes
MODEL_MUTATION_LOGGER.deletingRemovedCollectionRows( mutationTarget.getRolePath(), key );
}

final MutationExecutor mutationExecutor = mutationExecutorService.createExecutor(
final var mutationExecutor = mutationExecutorService.createExecutor(
() -> batchKey,
operationGroup,
session
);
final JdbcValueBindings jdbcValueBindings = mutationExecutor.getJdbcValueBindings();
final var jdbcValueBindings = mutationExecutor.getJdbcValueBindings();

try {
final PluralAttributeMapping pluralAttribute = mutationTarget.getTargetPart();
final CollectionPersister collectionDescriptor = pluralAttribute.getCollectionDescriptor();
final var pluralAttribute = mutationTarget.getTargetPart();
final var collectionDescriptor = pluralAttribute.getCollectionDescriptor();

final Iterator<?> deletes = collection.getDeletes( collectionDescriptor, !deleteByIndex );
final var deletes = collection.getDeletes( collectionDescriptor, !deleteByIndex );
if ( !deletes.hasNext() ) {
MODEL_MUTATION_LOGGER.noRowsToDelete();
return;
}

int deletionCount = 0;

final RowMutationOperations.Restrictions restrictions = rowMutationOperations.getDeleteRowRestrictions();
final var restrictions = rowMutationOperations.getDeleteRowRestrictions();

while ( deletes.hasNext() ) {
final Object removal = deletes.next();
Expand All @@ -109,10 +102,10 @@ public void deleteRows(PersistentCollection<?> collection, Object key, SharedSes
}

private MutationOperationGroup createOperationGroup() {
assert mutationTarget.getTargetPart() != null;
assert mutationTarget.getTargetPart().getKeyDescriptor() != null;
assert mutationTarget.getTargetPart() != null
&& mutationTarget.getTargetPart().getKeyDescriptor() != null;

final JdbcMutationOperation operation = rowMutationOperations.getDeleteRowOperation();
return MutationOperationGroupFactory.singleOperation( MutationType.DELETE, mutationTarget, operation );
final var operation = rowMutationOperations.getDeleteRowOperation();
return singleOperation( MutationType.DELETE, mutationTarget, operation );
}
}
Loading