Abstract
The template provides lower level access to the underlying database and also serves as the foundation for repositories. Any time a repository is too high-level for you needs chances are good that the templates will serve you well.
The template can be accessed through the couchbaseTemplate
bean out of your context. Once
you've got a reference to it, you can run all kinds of operations against it. Other than through a repository,
in a template you need to always specifiy the target entity type which you want to get converted.
To mutate documents, you'll find save
, insert
and update
methods
exposed. Saving will insert or update the document, insert will fail if it has been created already and update
only works against documents that have already been created.
Since Couchbase Server has different levels of persistence (by default you'll get a positive response if
it has been acknowledged in the managed cache), you can provide higher durability options through the overloaded
PersistTo
and/or ReplicateTo
options. The behaviour is part of the Couchbase Java SDK,
please refer to the official documentation for more details.
Remvoing docouments through the remove
methods works exactly the same.
If you want to load documents, you can do that through the findById
method, which is the fastest
and if possible your tool of choice. The find methods for views are findByView
which converts it
into the target entity, but also querView
which exposes lower level semantics.
If you really need low-level semantics, the couchbaseClient
bean is also always in scope.