From 386644190a3d38f907ae1b23f594331dc18a657c Mon Sep 17 00:00:00 2001 From: Thomas Darimont Date: Tue, 28 Oct 2014 15:57:34 +0100 Subject: [PATCH] DATACMNS-583 - DomainClassConverter returns input if given types are the same. DomainClassConverter now returns input when the source type is identical to the target type. Previously we erroneously tried to convert the sourceType to the idType of the targetType's backing repository. As a side effect we also avoid performing some unnecessary converter hops. Original pull request: #101. --- .../repository/support/DomainClassConverter.java | 13 +++++++++++-- .../support/DomainClassConverterUnitTests.java | 14 ++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/repository/support/DomainClassConverter.java b/src/main/java/org/springframework/data/repository/support/DomainClassConverter.java index b2ce5242c..9fc9dad8e 100644 --- a/src/main/java/org/springframework/data/repository/support/DomainClassConverter.java +++ b/src/main/java/org/springframework/data/repository/support/DomainClassConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2008-2012 the original author or authors. + * Copyright 2008-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,11 +31,12 @@ import org.springframework.util.StringUtils; /** * {@link org.springframework.core.convert.converter.Converter} to convert arbitrary input into domain classes managed - * by Spring Data {@link CrudRepository} s. The implementation uses a {@link ConversionService} in turn to convert the + * by Spring Data {@link CrudRepository}s. The implementation uses a {@link ConversionService} in turn to convert the * source type into the domain class' id type which is then converted into a domain class object by using a * {@link CrudRepository}. * * @author Oliver Gierke + * @author Thomas Darimont */ public class DomainClassConverter implements ConditionalGenericConverter, ApplicationContextAware { @@ -65,6 +66,10 @@ public class DomainClassConverter domainType = targetType.getType(); RepositoryInformation info = repositories.getRepositoryInformationFor(domainType); @@ -83,6 +88,10 @@ public class DomainClassConverter