diff --git a/src/main/java/org/springframework/data/redis/core/BoundHashOperations.java b/src/main/java/org/springframework/data/redis/core/BoundHashOperations.java index ccc23dd12..d61d81682 100644 --- a/src/main/java/org/springframework/data/redis/core/BoundHashOperations.java +++ b/src/main/java/org/springframework/data/redis/core/BoundHashOperations.java @@ -52,7 +52,7 @@ public interface BoundHashOperations extends BoundKeyOperations { Long size(); - void delete(Object... keys); + Long delete(Object... keys); Map entries(); diff --git a/src/main/java/org/springframework/data/redis/core/DefaultBoundHashOperations.java b/src/main/java/org/springframework/data/redis/core/DefaultBoundHashOperations.java index 647714324..51ab3eaca 100644 --- a/src/main/java/org/springframework/data/redis/core/DefaultBoundHashOperations.java +++ b/src/main/java/org/springframework/data/redis/core/DefaultBoundHashOperations.java @@ -38,15 +38,15 @@ class DefaultBoundHashOperations extends DefaultBoundKeyOperations * Constructs a new DefaultBoundHashOperations instance. * * @param key - * @param template + * @param operations */ public DefaultBoundHashOperations(H key, RedisOperations operations) { super(key, operations); this.ops = operations.opsForHash(); } - public void delete(Object... keys) { - ops.delete(getKey(), keys); + public Long delete(Object... keys) { + return ops.delete(getKey(), keys); } public HV get(Object key) { diff --git a/src/main/java/org/springframework/data/redis/core/DefaultHashOperations.java b/src/main/java/org/springframework/data/redis/core/DefaultHashOperations.java index dcba9aadc..94c5e9676 100644 --- a/src/main/java/org/springframework/data/redis/core/DefaultHashOperations.java +++ b/src/main/java/org/springframework/data/redis/core/DefaultHashOperations.java @@ -201,15 +201,14 @@ class DefaultHashOperations extends AbstractOperations imp return deserializeHashValues(rawValues); } - public void delete(K key, Object... hashKeys) { + public Long delete(K key, Object... hashKeys) { final byte[] rawKey = rawKey(key); final byte[][] rawHashKeys = rawHashKeys(hashKeys); - execute(new RedisCallback() { + return execute(new RedisCallback() { - public Object doInRedis(RedisConnection connection) { - connection.hDel(rawKey, rawHashKeys); - return null; + public Long doInRedis(RedisConnection connection) { + return connection.hDel(rawKey, rawHashKeys); } }, true); } diff --git a/src/main/java/org/springframework/data/redis/core/HashOperations.java b/src/main/java/org/springframework/data/redis/core/HashOperations.java index 37ae67966..875713756 100644 --- a/src/main/java/org/springframework/data/redis/core/HashOperations.java +++ b/src/main/java/org/springframework/data/redis/core/HashOperations.java @@ -28,7 +28,7 @@ import java.util.Set; */ public interface HashOperations { - void delete(H key, Object... hashKeys); + Long delete(H key, Object... hashKeys); Boolean hasKey(H key, Object hashKey); diff --git a/src/test/java/org/springframework/data/redis/core/DefaultHashOperationsTests.java b/src/test/java/org/springframework/data/redis/core/DefaultHashOperationsTests.java index b721eb76d..a2299be3b 100644 --- a/src/test/java/org/springframework/data/redis/core/DefaultHashOperationsTests.java +++ b/src/test/java/org/springframework/data/redis/core/DefaultHashOperationsTests.java @@ -134,8 +134,9 @@ public class DefaultHashOperationsTests { HV val2 = hashValueFactory.instance(); hashOps.put(key, key1, val1); hashOps.put(key, key2, val2); - hashOps.delete(key, key1, key2); + Long numDeleted = hashOps.delete(key, key1, key2); assertTrue(hashOps.keys(key).isEmpty()); + assertEquals(2L, numDeleted.longValue()); } /**