Compare commits

...

6 Commits

Author SHA1 Message Date
Mark Paluch
ecb35886f9 Update test to work with Kotlin override properties. 2021-04-19 10:32:53 +02:00
Mark Paluch
2bca4c9a33 Polishing. 2021-04-19 10:32:41 +02:00
Mark Paluch
19d74427f1 Rebase. 2021-04-19 10:32:34 +02:00
Christoph Strobl
4fb6a844dd DATAMONGO-2250 - Switch to DATACMNS-1509 makes the test pass. 2021-04-19 10:10:45 +02:00
Christoph Strobl
51a35273d3 DATAMONGO-2250 - Add test case for Kotlin override properties. 2021-04-19 10:10:22 +02:00
Christoph Strobl
203d2d0187 DATAMONGO-2250 - Prepare issue branch. 2021-04-19 10:10:20 +02:00
6 changed files with 61 additions and 6 deletions

View File

@@ -5,7 +5,7 @@
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb-parent</artifactId>
<version>3.3.0-SNAPSHOT</version>
<version>3.3.0.DATAMONGO-2250-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Spring Data MongoDB</name>
@@ -26,7 +26,7 @@
<properties>
<project.type>multi</project.type>
<dist.id>spring-data-mongodb</dist.id>
<springdata.commons>2.6.0-SNAPSHOT</springdata.commons>
<springdata.commons>2.6.0.DATACMNS-1509-SNAPSHOT</springdata.commons>
<mongo>4.2.3</mongo>
<mongo.reactivestreams>${mongo}</mongo.reactivestreams>
<jmh.version>1.19</jmh.version>

View File

@@ -7,7 +7,7 @@
<parent>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb-parent</artifactId>
<version>3.3.0-SNAPSHOT</version>
<version>3.3.0.DATAMONGO-2250-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@@ -14,7 +14,7 @@
<parent>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb-parent</artifactId>
<version>3.3.0-SNAPSHOT</version>
<version>3.3.0.DATAMONGO-2250-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@@ -11,7 +11,7 @@
<parent>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb-parent</artifactId>
<version>3.3.0-SNAPSHOT</version>
<version>3.3.0.DATAMONGO-2250-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

View File

@@ -353,7 +353,7 @@ public class BasicMongoPersistentEntity<T> extends BasicPersistentEntity<T, Mong
if (existingProperty != null) {
throw new MappingException(
String.format(AMBIGUOUS_FIELD_MAPPING, property.toString(), existingProperty.toString(), fieldName));
String.format(AMBIGUOUS_FIELD_MAPPING, property, existingProperty, fieldName));
}
properties.put(fieldName, property);

View File

@@ -0,0 +1,55 @@
/*
* Copyright 2019 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.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.mongodb.core
import com.mongodb.client.MongoClients
import org.junit.Test
import org.springframework.data.mongodb.core.mapping.Field
import org.springframework.data.mongodb.repository.MongoRepository
import org.springframework.data.mongodb.repository.support.MongoRepositoryFactory
import org.springframework.data.mongodb.test.util.Assertions.assertThat
open class SuperType(open var field: Int)
class SubType(val id: String, @Field("foo") override var field: Int = 1) :
SuperType(field) {
fun setFields(v: Int) {
field = v
super.field = v
}
}
interface MyRepository : MongoRepository<SubType, String>
class `KotlinOverridePropertyTests` {
val template = MongoTemplate(MongoClients.create(), "kotlin-tests")
@Test // DATAMONGO-2250
fun `Ambiguous field mapping for override val field`() {
val repository =
MongoRepositoryFactory(template).getRepository(MyRepository::class.java)
var subType = SubType("id-1")
subType.setFields(3)
repository.save(subType)
assertThat(repository.findById(subType.id).get().field).isEqualTo(subType.field)
}
}