2727import org .springframework .core .CollectionFactory ;
2828import org .springframework .core .convert .converter .Converter ;
2929import org .springframework .core .log .LogAccessor ;
30+ import org .springframework .data .mapping .InstanceCreatorMetadata ;
3031import org .springframework .data .mapping .MappingException ;
32+ import org .springframework .data .mapping .Parameter ;
3133import org .springframework .data .mapping .PersistentEntity ;
3234import org .springframework .data .mapping .PersistentProperty ;
3335import org .springframework .data .mapping .PersistentPropertyAccessor ;
34- import org .springframework .data .mapping .PreferredConstructor ;
35- import org .springframework .data .mapping .PreferredConstructor .Parameter ;
3636import org .springframework .data .mapping .SimplePropertyHandler ;
3737import org .springframework .data .mapping .model .ParameterValueProvider ;
3838import org .springframework .data .util .ClassTypeInformation ;
@@ -76,8 +76,7 @@ public Object convertDirectly(Object entityInstance) {
7676
7777 Neo4jPersistentEntity <?> targetEntity = context .addPersistentEntity (ClassTypeInformation .from (targetType )).orElse (null );
7878 Assert .notNull (targetEntity , "Target entity could not be created for a DTO" );
79- PreferredConstructor <?, Neo4jPersistentProperty > constructor = targetEntity
80- .getPersistenceConstructor ();
79+ InstanceCreatorMetadata <?> creator = targetEntity .getInstanceCreatorMetadata ();
8180
8281 Object dto = context .getInstantiatorFor (targetEntity )
8382 .createInstance (targetEntity ,
@@ -89,7 +88,7 @@ public Object convertDirectly(Object entityInstance) {
8988 PersistentPropertyAccessor <Object > dtoAccessor = targetEntity .getPropertyAccessor (dto );
9089 targetEntity .doWithProperties ((SimplePropertyHandler ) property -> {
9190
92- if (constructor != null && constructor . isConstructorParameter (property )) {
91+ if (creator != null && creator . isCreatorParameter (property )) {
9392 return ;
9493 }
9594
@@ -130,9 +129,9 @@ public Object convert(@Nullable EntityInstanceWithSource entityInstanceAndSource
130129 PersistentPropertyAccessor <Object > sourceAccessor = sourceEntity .getPropertyAccessor (entityInstance );
131130
132131 Neo4jPersistentEntity <?> targetEntity = context .addPersistentEntity (ClassTypeInformation .from (targetType ))
133- .orElseThrow (() -> new MappingException ("Could not add a persistent entity for the projection target type '" + targetType . getName () + "'." ));
134- PreferredConstructor <?, ? extends PersistentProperty <?>> constructor = targetEntity
135- . getPersistenceConstructor ();
132+ .orElseThrow (() -> new MappingException (
133+ "Could not add a persistent entity for the projection target type '" + targetType . getName () + "'." ));
134+ InstanceCreatorMetadata <? extends PersistentProperty <?>> creator = targetEntity . getInstanceCreatorMetadata ();
136135
137136 Object dto = context .getInstantiatorFor (targetEntity )
138137 .createInstance (targetEntity ,
@@ -142,8 +141,8 @@ public Object convert(@Nullable EntityInstanceWithSource entityInstanceAndSource
142141 );
143142
144143 PersistentPropertyAccessor <Object > dtoAccessor = targetEntity .getPropertyAccessor (dto );
145- targetEntity .doWithAll (property ->
146- setPropertyOnDtoObject ( entityInstanceAndSource , sourceEntity , sourceAccessor , constructor , dtoAccessor , property ));
144+ targetEntity .doWithAll (property -> setPropertyOnDtoObject ( entityInstanceAndSource , sourceEntity , sourceAccessor ,
145+ creator , dtoAccessor , property ));
147146
148147 return dto ;
149148 }
@@ -171,11 +170,12 @@ public <T> T getParameterValue(Parameter<T, Neo4jPersistentProperty> parameter)
171170 };
172171 }
173172
174- private void setPropertyOnDtoObject (EntityInstanceWithSource entityInstanceAndSource , PersistentEntity <?, ?> sourceEntity ,
175- PersistentPropertyAccessor <Object > sourceAccessor , @ Nullable PreferredConstructor <?, ?> constructor ,
176- PersistentPropertyAccessor <Object > dtoAccessor , Neo4jPersistentProperty property ) {
173+ private void setPropertyOnDtoObject (EntityInstanceWithSource entityInstanceAndSource ,
174+ PersistentEntity <?, ?> sourceEntity , PersistentPropertyAccessor <Object > sourceAccessor ,
175+ @ Nullable InstanceCreatorMetadata <?> creator , PersistentPropertyAccessor <Object > dtoAccessor ,
176+ Neo4jPersistentProperty property ) {
177177
178- if (constructor != null && constructor . isConstructorParameter (property )) {
178+ if (creator != null && creator . isCreatorParameter (property )) {
179179 return ;
180180 }
181181
0 commit comments