Spring Data Couchbase

Mit Spring Data Couchbase kann eine Java-Applikation sehr einfach auf die Dokumente des Couchbase Servers zugreifen. 

Das im Folgenden erläuterte Beispiel ist unter https://github.com/Javacream/org.javacream.training.couchbase zu finden.

Das POM

Couchbase wird von der Spring Boot Community unterstützt und durch einen eigenen Starter realisiert:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-couchbase</artifactId>
</dependency>

Java-Document-Mapping

Die Struktur einer Java-Klasse wird über Couchbase-Annotationen in ein Dokument gemapped. Die folgende Klasse entspricht einer Airline aus dem travel-demo der Couchbase-Installation:

package org.javacream.training.couchbase.spring.data.travel;

import org.springframework.data.couchbase.core.mapping.Document;

import com.couchbase.client.java.repository.annotation.Field;
import com.couchbase.client.java.repository.annotation.Id;

@Document
public class Airline {

	@Id
	private String id;

	@Field
	private String type;

	@Field
	private String name;

	@Field("iata")
	private String iataCode;

	
	@Field
	private String icao;

	@Field
	private String callsign;

	@Field
	private String country;

        //getter und setter
}

Das Repository

Das Repository wird wie bei Spring Data üblich als Interface realisiert:

package org.javacream.training.couchbase.spring.data.travel;

import java.util.List;

import org.springframework.data.couchbase.core.query.N1qlPrimaryIndexed;
import org.springframework.data.couchbase.core.query.View;
import org.springframework.data.couchbase.core.query.ViewIndexed;
import org.springframework.data.repository.CrudRepository;

/**
 * Repository interface to manage {@link Airline} instances.
 *
 */
@N1qlPrimaryIndexed
@ViewIndexed(designDoc = "airlines")
public interface TravelRepository extends CrudRepository<Airline, String> {

	/**
	 * Derived query selecting by {@code iataCode}.
	 *
	 * @param code
	 * @return
	 */
	Airline findAirlineByIataCode(String code);

	/**
	 * Query method using {@code airlines/all} view.
	 *
	 * @return
	 */
	@View(designDocument = "airlines", viewName = "allAirlines")
	List<Airline> findAllAirlinesBy();
}

Die Anwendung

Die Spring Boot-Applikation wird über die application.properties konfiguriert:


spring.couchbase.bucket.name=travel-sample
spring.couchbase.bootstrap-hosts=localhost
spring.couchbase.username=*****
spring.couchbase.password=*****

Die Anwendung benutzt dann das Repository, um mit der Couchbase zu kommunizieren.


Seminare zum Thema

Dr. Rainer Sawitzki / Dr. Rainer Sawitzki

Nach seinem Studium der Physik und anschließender Promotion Wechsel in die IT-Branche. Seit mehr als 20 Jahren als Entwickler, Berater und Projektleiter vorwiegend im Bereich Java und JavaScript unterwegs. Parallel dazu in der Entwicklung und Durchführung von hochwertigen Seminaren für die Integrata im Einsatz.

Schreibe einen Kommentar