From 20692f843a326a22dd531d142f8a986c1782c202 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 7 Sep 2018 09:56:47 +0200 Subject: [PATCH] Upgrade to Spring Data Lovelace RC2. Closes gh-298. --- pom.xml | 2 +- .../convert/MappingVaultConverter.java | 19 +++++++++++-------- .../repository/query/VaultPartTreeQuery.java | 5 +++-- .../repository/query/VaultQueryCreator.java | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index 9f1442ce..bfbb26ef 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ UTF-8 5.1.0.RC2 - Kay-SR9 + Lovelace-RC2 Californium-RC1 1.8 multi diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/MappingVaultConverter.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/MappingVaultConverter.java index 148bd6f7..aa0623bc 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/MappingVaultConverter.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/MappingVaultConverter.java @@ -183,17 +183,20 @@ public class MappingVaultConverter extends AbstractVaultConverter { // make sure id property is set before all other properties Object idValue; - if (idProperty != null && documentAccessor.hasValue(idProperty)) { + if (entity.requiresPropertyPopulation()) { + if (idProperty != null && !entity.isConstructorArgument(idProperty) + && documentAccessor.hasValue(idProperty)) { - idValue = readIdValue(idProperty, documentAccessor); - accessor.setProperty(idProperty, idValue); + idValue = readIdValue(idProperty, documentAccessor); + accessor.setProperty(idProperty, idValue); + } + + VaultPropertyValueProvider valueProvider = new VaultPropertyValueProvider( + documentAccessor); + + readProperties(entity, accessor, idProperty, documentAccessor, valueProvider); } - VaultPropertyValueProvider valueProvider = new VaultPropertyValueProvider( - documentAccessor); - - readProperties(entity, accessor, idProperty, documentAccessor, valueProvider); - return instance; } diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/query/VaultPartTreeQuery.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/query/VaultPartTreeQuery.java index 23588422..8bb83324 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/query/VaultPartTreeQuery.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/query/VaultPartTreeQuery.java @@ -20,11 +20,12 @@ import lombok.RequiredArgsConstructor; import org.springframework.data.keyvalue.core.KeyValueOperations; import org.springframework.data.keyvalue.repository.query.KeyValuePartTreeQuery; import org.springframework.data.mapping.context.MappingContext; -import org.springframework.data.repository.query.EvaluationContextProvider; import org.springframework.data.repository.query.ParameterAccessor; import org.springframework.data.repository.query.QueryMethod; +import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.parser.AbstractQueryCreator; import org.springframework.data.repository.query.parser.PartTree; +import org.springframework.data.spel.EvaluationContextProvider; import org.springframework.vault.repository.mapping.VaultPersistentEntity; import org.springframework.vault.repository.mapping.VaultPersistentProperty; @@ -48,7 +49,7 @@ public class VaultPartTreeQuery extends KeyValuePartTreeQuery { */ @SuppressWarnings("unchecked") public VaultPartTreeQuery(QueryMethod queryMethod, - EvaluationContextProvider evaluationContextProvider, + QueryMethodEvaluationContextProvider evaluationContextProvider, KeyValueOperations keyValueOperations, Class> queryCreator) { diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/query/VaultQueryCreator.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/query/VaultQueryCreator.java index 347cbb41..7443b1cd 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/query/VaultQueryCreator.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/query/VaultQueryCreator.java @@ -27,8 +27,8 @@ import lombok.Value; import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.data.domain.Sort; import org.springframework.data.keyvalue.core.query.KeyValueQuery; +import org.springframework.data.mapping.PersistentPropertyPath; import org.springframework.data.mapping.context.MappingContext; -import org.springframework.data.mapping.context.PersistentPropertyPath; import org.springframework.data.repository.query.ParameterAccessor; import org.springframework.data.repository.query.parser.AbstractQueryCreator; import org.springframework.data.repository.query.parser.Part;