diff --git a/pom.xml b/pom.xml
index f0b2a42b23..f49293315a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-relational-parent
- 3.4.0-SNAPSHOT
+ 3.4.0-1680-duplicate-column-SNAPSHOT
pom
Spring Data Relational Parent
diff --git a/spring-data-jdbc-distribution/pom.xml b/spring-data-jdbc-distribution/pom.xml
index 4626db4364..8b001af040 100644
--- a/spring-data-jdbc-distribution/pom.xml
+++ b/spring-data-jdbc-distribution/pom.xml
@@ -14,7 +14,7 @@
org.springframework.data
spring-data-relational-parent
- 3.4.0-SNAPSHOT
+ 3.4.0-1680-duplicate-column-SNAPSHOT
../pom.xml
diff --git a/spring-data-jdbc/pom.xml b/spring-data-jdbc/pom.xml
index 266af71b96..473f9924ff 100644
--- a/spring-data-jdbc/pom.xml
+++ b/spring-data-jdbc/pom.xml
@@ -6,7 +6,7 @@
4.0.0
spring-data-jdbc
- 3.4.0-SNAPSHOT
+ 3.4.0-1680-duplicate-column-SNAPSHOT
Spring Data JDBC
Spring Data module for JDBC repositories.
@@ -15,7 +15,7 @@
org.springframework.data
spring-data-relational-parent
- 3.4.0-SNAPSHOT
+ 3.4.0-1680-duplicate-column-SNAPSHOT
diff --git a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/convert/RowDocumentResultSetExtractor.java b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/convert/RowDocumentResultSetExtractor.java
index 5d0878d4ca..bf200535d3 100644
--- a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/convert/RowDocumentResultSetExtractor.java
+++ b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/convert/RowDocumentResultSetExtractor.java
@@ -22,6 +22,8 @@
import java.util.Iterator;
import java.util.Map;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.dao.DataRetrievalFailureException;
import org.springframework.data.jdbc.core.convert.RowDocumentExtractorSupport.AggregateContext;
import org.springframework.data.jdbc.core.convert.RowDocumentExtractorSupport.RowDocumentSink;
@@ -43,6 +45,9 @@
*/
class RowDocumentResultSetExtractor {
+ private static final Logger log = LoggerFactory.getLogger(RowDocumentResultSetExtractor.class);
+ public static final String DUPLICATE_COLUMN_WARNING = "ResultSet contains column \"{}\" multiple times. Later column index is {}";
+
private final RelationalMappingContext context;
private final PathToColumnMapping propertyToColumn;
@@ -66,9 +71,13 @@ static RowDocument toRowDocument(ResultSet resultSet) throws SQLException {
RowDocument document = new RowDocument(columnCount);
for (int i = 0; i < columnCount; i++) {
+
Object rsv = JdbcUtils.getResultSetValue(resultSet, i + 1);
String columnName = md.getColumnLabel(i + 1);
- document.put(columnName, rsv instanceof Array a ? a.getArray() : rsv);
+ Object old = document.put(columnName, rsv instanceof Array a ? a.getArray() : rsv);
+ if (old != null) {
+ log.warn(DUPLICATE_COLUMN_WARNING, columnName, i);
+ }
}
return document;
@@ -107,7 +116,12 @@ public Map getColumnMap(ResultSet result) {
Map columns = new LinkedCaseInsensitiveMap<>(metaData.getColumnCount());
for (int i = 0; i < metaData.getColumnCount(); i++) {
- columns.put(metaData.getColumnLabel(i + 1), i + 1);
+
+ String columnLabel = metaData.getColumnLabel(i + 1);
+ Object old = columns.put(columnLabel, i + 1);
+ if (old != null) {
+ log.warn(DUPLICATE_COLUMN_WARNING, columnLabel, i);
+ }
}
return columns;
} catch (SQLException e) {
diff --git a/spring-data-r2dbc/pom.xml b/spring-data-r2dbc/pom.xml
index 3168f9d4f6..74537f6986 100644
--- a/spring-data-r2dbc/pom.xml
+++ b/spring-data-r2dbc/pom.xml
@@ -6,7 +6,7 @@
4.0.0
spring-data-r2dbc
- 3.4.0-SNAPSHOT
+ 3.4.0-1680-duplicate-column-SNAPSHOT
Spring Data R2DBC
Spring Data module for R2DBC
@@ -15,7 +15,7 @@
org.springframework.data
spring-data-relational-parent
- 3.4.0-SNAPSHOT
+ 3.4.0-1680-duplicate-column-SNAPSHOT
diff --git a/spring-data-relational/pom.xml b/spring-data-relational/pom.xml
index 0287ece743..8fcf3e4988 100644
--- a/spring-data-relational/pom.xml
+++ b/spring-data-relational/pom.xml
@@ -6,7 +6,7 @@
4.0.0
spring-data-relational
- 3.4.0-SNAPSHOT
+ 3.4.0-1680-duplicate-column-SNAPSHOT
Spring Data Relational
Spring Data Relational support
@@ -14,7 +14,7 @@
org.springframework.data
spring-data-relational-parent
- 3.4.0-SNAPSHOT
+ 3.4.0-1680-duplicate-column-SNAPSHOT