Skip to content

Commit cd28784

Browse files
committed
Add support for factory methods.
Simply annotate a static factory method on your entity class with @PersistenceCreator. Closes #1312
1 parent f919ab9 commit cd28784

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverter.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
import org.springframework.data.mapping.PersistentPropertyAccessor;
5050
import org.springframework.data.mapping.PersistentPropertyPath;
5151
import org.springframework.data.mapping.PersistentPropertyPathAccessor;
52-
import org.springframework.data.mapping.PreferredConstructor;
5352
import org.springframework.data.mapping.context.MappingContext;
5453
import org.springframework.data.mapping.model.ConvertingPropertyAccessor;
5554
import org.springframework.data.mapping.model.DefaultSpELExpressionEvaluator;
@@ -338,11 +337,11 @@ private <R> R doReadProjection(ConversionContext context, CassandraValueProvider
338337
CassandraValueProvider valueProviderToUse = new TranslatingCassandraValueProvider(propertyTranslator,
339338
valueProvider);
340339

341-
PreferredConstructor<?, CassandraPersistentProperty> persistenceConstructor = mappedEntity
342-
.getPersistenceConstructor();
340+
InstanceCreatorMetadata<CassandraPersistentProperty> persistenceCreator = mappedEntity
341+
.getInstanceCreatorMetadata();
343342

344343
ParameterValueProvider<CassandraPersistentProperty> provider;
345-
if (persistenceConstructor != null && persistenceConstructor.hasParameters()) {
344+
if (persistenceCreator != null && persistenceCreator.hasParameters()) {
346345
SpELExpressionEvaluator evaluator = new DefaultSpELExpressionEvaluator(valueProviderToUse.getSource(),
347346
spELContext);
348347
ParameterValueProvider<CassandraPersistentProperty> parameterValueProvider = newParameterValueProvider(context,
@@ -508,10 +507,10 @@ private static Class<?> getRawSourceType(CassandraValueProvider valueProvider) {
508507
private <S> S doReadEntity(ConversionContext context, CassandraValueProvider valueProvider,
509508
CassandraPersistentEntity<S> entity) {
510509

511-
PreferredConstructor<S, CassandraPersistentProperty> persistenceConstructor = entity.getPersistenceConstructor();
510+
InstanceCreatorMetadata<CassandraPersistentProperty> persistenceCreator = entity.getInstanceCreatorMetadata();
512511
ParameterValueProvider<CassandraPersistentProperty> provider;
513512

514-
if (persistenceConstructor != null && persistenceConstructor.hasParameters()) {
513+
if (persistenceCreator != null && persistenceCreator.hasParameters()) {
515514
SpELExpressionEvaluator evaluator = new DefaultSpELExpressionEvaluator(valueProvider.getSource(), spELContext);
516515
ParameterValueProvider<CassandraPersistentProperty> parameterValueProvider = newParameterValueProvider(context,
517516
entity, valueProvider);

0 commit comments

Comments
 (0)