Repository MongoDB

Repository MongoDB

Es una clase que permite interactuar con una base de datos MongoDB, 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:

  • 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 MongoClient getMongoClient()

Repository para Java Standard Edition

public class PlanetasRepository extends Repository<Planetas>{

MongoClientProvider mongoclientProvider = new MongoClientProvider();
    public PlanetasRepository( ){
        super(Planetas.class, "myappdb", "planetas");
    }

      @Override
    protected MongoClient getMongoClient() {
       return mongoclientProvider.getMongoClient();
    }

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

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

Repository para Java Enterprise Edition

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

Procedimiento:

  • Injectar MongoClientProvider

  • En el constructor invocar el método

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

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;

import org.bson.Document;

/** *

@author avbravo */

@Stateless

public class PlanetasRepository extends Repository<Planetas> {

@EJB
MongoClientProvider mongoClientProvider;

@Override
protected MongoClient getMongoClient() {
  return mongoClientProvider.getMongoClient();
}

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


}

Last updated