Repository Couchbase

Repository Couchbase

Es una clase que permite interactuar con una base de datos Couchbase, para ejecutar todas las operaciones. Cada entity debe tener definido un repository.

Existen dos formas de definir repository;

  1. Repository para Java Standar Edition

  2. Repository para Java Enterprise Edition

Procedimiento:

Heredar de la clase CouchbaseRepository<T>

  • En el constructor invocar el método

    super(Entity.class,"basedatos","colección")
  • Por Ejemplo:

    super(Planetas.class, "myappdb", "planetas");
  • Implementar el método

    protected Cluster getCluster()
  • Implementar el método

    public Object findById(String key, String value)

  • Implementar el método

    public Object findById(String key, Integer value)

Facade para Java Standard Edition

public class PlanetasRepository extends CouchbaseRepository<Planetas>  {

   CouchbaseClientProvider couchbseclientProvider = new  CouchbaseClientProvider();

    public PlanetasRepository() {
        super(Planetas.class, "default", "planetas");
    }

    @Override
    protected Cluster getCluster() {
    return  couchbseclientProvider.getCluster();
    }

     @Override
    public Object findById(String key, String value) {
        return search(key, value);
    }

    @Override
    public Object findById(String key, Integer value) {
        return search(key, value);
    }


}

Facade para Java Enterprise Edition

Para la versión Enterprise Edition de Java definimos los Repository de manera sencilla

Procedimiento:

  • Injectar CouchbaseClientProvider

  • En el constructor invocar el método

    super(Entity.class,"basedatos,"coleccion")
      super(Planetas.class, "myappdb", "planetas");
  • Implementar el método protected Cluster getCluster()

Ejemplo

import java.util.ArrayList;

import java.util.List;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.ejb.EJB;

import javax.ejb.Stateless;



/** *

@author avbravo */

@Stateless

public class PlanetasRepository extends CouchbaseRepository<Planetas>  {

@EJB
CouchbaseClientProvider couchbseclientProvider;

@Override
  protected Cluster getCluster() {
    return  couchbseclientProvider.getCluster();
   }


public PlanetasRepository() {
    super(Planetas.class, "default", "planetas");
}

@Override
public Object findById(String value, String key ){
    return search(key, value);
}

@Override
 public Object findById(String value, Integer key) {
    return search(key, value);
}
}

Last updated