diff --git a/src/main/java/com/couchbase/spring/core/CouchbaseOperations.java b/src/main/java/com/couchbase/spring/core/CouchbaseOperations.java index 6753d842..0067907d 100644 --- a/src/main/java/com/couchbase/spring/core/CouchbaseOperations.java +++ b/src/main/java/com/couchbase/spring/core/CouchbaseOperations.java @@ -127,6 +127,9 @@ public interface CouchbaseOperations { /** * Remove the given object from the bucket by id. * + * If the object is a String, it will be treated as the document key + * directly. + * * @param object the Object to remove. */ void remove(Object object); diff --git a/src/main/java/com/couchbase/spring/core/CouchbaseTemplate.java b/src/main/java/com/couchbase/spring/core/CouchbaseTemplate.java index 9bc6beaf..4cae39f0 100644 --- a/src/main/java/com/couchbase/spring/core/CouchbaseTemplate.java +++ b/src/main/java/com/couchbase/spring/core/CouchbaseTemplate.java @@ -163,6 +163,16 @@ public class CouchbaseTemplate implements CouchbaseOperations { public void remove(final Object objectToRemove) { ensureNotIterable(objectToRemove); + if (objectToRemove instanceof String) { + execute(new BucketCallback>() { + @Override + public OperationFuture doInBucket() { + return client.delete((String) objectToRemove); + } + }); + return; + } + final ConvertedCouchbaseDocument converted = new ConvertedCouchbaseDocument(); couchbaseConverter.write(objectToRemove, converted);