diff --git a/src/main/java/org/springframework/data/redis/connection/ReactiveHashCommands.java b/src/main/java/org/springframework/data/redis/connection/ReactiveHashCommands.java index 907983ac1..4041d7ab0 100644 --- a/src/main/java/org/springframework/data/redis/connection/ReactiveHashCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/ReactiveHashCommands.java @@ -195,8 +195,7 @@ public interface ReactiveHashCommands { Assert.notNull(key, "Key must not be null!"); Assert.notNull(fieldValueMap, "Field must not be null!"); - return hSet(Mono.just(HSetCommand.fieldValues(fieldValueMap).forKey(key).ifValueNotExists())).next() - .map(BooleanResponse::getOutput); + return hSet(Mono.just(HSetCommand.fieldValues(fieldValueMap).forKey(key))).next().map(it -> true); } /** diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveHashCommandsTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveHashCommandsTests.java index 00ca74d90..c4134f2ba 100644 --- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveHashCommandsTests.java +++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveHashCommandsTests.java @@ -120,6 +120,21 @@ public class LettuceReactiveHashCommandsTests extends LettuceReactiveCommandsTes assertThat(nativeCommands.hget(KEY_1, FIELD_2), is(equalTo(VALUE_2))); } + @Test // DATAREDIS-791 + public void hMSetShouldOverwriteValuesCorrectly() { + + Map fieldValues = new LinkedHashMap<>(); + fieldValues.put(FIELD_1_BBUFFER, VALUE_1_BBUFFER); + + connection.hashCommands().hMSet(KEY_1_BBUFFER, fieldValues).block(); + + Map overwriteFieldValues = new LinkedHashMap<>(); + overwriteFieldValues.put(FIELD_1_BBUFFER, VALUE_2_BBUFFER); + + connection.hashCommands().hMSet(KEY_1_BBUFFER, overwriteFieldValues).block(); + assertThat(nativeCommands.hget(KEY_1, FIELD_1), is(equalTo(VALUE_2))); + } + @Test // DATAREDIS-525 public void hExistsShouldReturnTrueForExistingField() {