diff --git a/src/main/java/org/springframework/data/r2dbc/mapping/OutboundRow.java b/src/main/java/org/springframework/data/r2dbc/mapping/OutboundRow.java index e51023258..9d7cb8b83 100644 --- a/src/main/java/org/springframework/data/r2dbc/mapping/OutboundRow.java +++ b/src/main/java/org/springframework/data/r2dbc/mapping/OutboundRow.java @@ -36,7 +36,7 @@ import org.springframework.util.Assert; * @see SqlIdentifier * @see Parameter */ -public class OutboundRow implements Map { +public class OutboundRow implements Map, Cloneable { private final Map rowAsMap; @@ -61,6 +61,12 @@ public class OutboundRow implements Map { map.forEach((s, Parameter) -> this.rowAsMap.put(SqlIdentifier.unquoted(s), Parameter)); } + private OutboundRow(OutboundRow map) { + + this.rowAsMap = new LinkedHashMap<>(map.size()); + this.rowAsMap.putAll(map); + } + /** * Create a {@link OutboundRow} instance initialized with the given key/value pair. * @@ -137,6 +143,15 @@ public class OutboundRow implements Map { return this.rowAsMap.isEmpty(); } + /* + * (non-Javadoc) + * @see java.lang.Object#clone() + */ + @Override + protected OutboundRow clone() { + return new OutboundRow(this); + } + /* * (non-Javadoc) * @see java.util.Map#containsKey(java.lang.Object)