From cd287843a2020de874e6789107e81c40c5a8ca6b Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Wed, 5 Oct 2022 15:29:44 +0200 Subject: [PATCH] Add support for factory methods. Simply annotate a static factory method on your entity class with @PersistenceCreator. Closes #1312 --- .../core/convert/MappingCassandraConverter.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverter.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverter.java index ea15e2c03..70e086759 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverter.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverter.java @@ -49,7 +49,6 @@ import org.springframework.data.mapping.PersistentProperty; import org.springframework.data.mapping.PersistentPropertyAccessor; import org.springframework.data.mapping.PersistentPropertyPath; import org.springframework.data.mapping.PersistentPropertyPathAccessor; -import org.springframework.data.mapping.PreferredConstructor; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.mapping.model.ConvertingPropertyAccessor; import org.springframework.data.mapping.model.DefaultSpELExpressionEvaluator; @@ -338,11 +337,11 @@ public class MappingCassandraConverter extends AbstractCassandraConverter CassandraValueProvider valueProviderToUse = new TranslatingCassandraValueProvider(propertyTranslator, valueProvider); - PreferredConstructor persistenceConstructor = mappedEntity - .getPersistenceConstructor(); + InstanceCreatorMetadata persistenceCreator = mappedEntity + .getInstanceCreatorMetadata(); ParameterValueProvider provider; - if (persistenceConstructor != null && persistenceConstructor.hasParameters()) { + if (persistenceCreator != null && persistenceCreator.hasParameters()) { SpELExpressionEvaluator evaluator = new DefaultSpELExpressionEvaluator(valueProviderToUse.getSource(), spELContext); ParameterValueProvider parameterValueProvider = newParameterValueProvider(context, @@ -508,10 +507,10 @@ public class MappingCassandraConverter extends AbstractCassandraConverter private S doReadEntity(ConversionContext context, CassandraValueProvider valueProvider, CassandraPersistentEntity entity) { - PreferredConstructor persistenceConstructor = entity.getPersistenceConstructor(); + InstanceCreatorMetadata persistenceCreator = entity.getInstanceCreatorMetadata(); ParameterValueProvider provider; - if (persistenceConstructor != null && persistenceConstructor.hasParameters()) { + if (persistenceCreator != null && persistenceCreator.hasParameters()) { SpELExpressionEvaluator evaluator = new DefaultSpELExpressionEvaluator(valueProvider.getSource(), spELContext); ParameterValueProvider parameterValueProvider = newParameterValueProvider(context, entity, valueProvider);