From 74e9a86f828d1a751ce8acdb96eabc674b5bca15 Mon Sep 17 00:00:00 2001 From: Michael Nitschinger Date: Wed, 29 May 2013 12:34:52 +0200 Subject: [PATCH] allow remove with both string id and object. --- .../com/couchbase/spring/core/CouchbaseOperations.java | 3 +++ .../com/couchbase/spring/core/CouchbaseTemplate.java | 10 ++++++++++ 2 files changed, 13 insertions(+) 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);