Repository

Repository

Crear los repository en el paquete ejb.

Cada entity debe contener un repository adicional es necesario definir:

  • AccessInfoRespository.java

  • AutoincrementableRespository.java

  • RevisionHistoryRespository.java.

Estos forman parte del framework, usados para guardar información de acceso y auditorias. Los entity que usa estan definidos en el framework.

El esquema general para los Facade.

  • extends AbstractRepository<Entity>

  • @EJB

      MongoClientProvider
  • Constructor con el super(clase, database,coleccion)

  • método getMongoClient()

  • implementar los metodos findById()

AccessInfoRepository.java

En el constructor indicamos la base de datos spard_history donde se almacenaran las colecciones.

import javax.ejb.Stateless;
import javax.ejb.EJB;
import com.avbravo.ejbjmoordb.mongodb.repository.Repository;
import com.avbravo.ejbjmoordb.pojos.AccessInfo;
import com.avbravo.ejbspard.provider.MongoClientProvider;

import com.mongodb.MongoClient;

/**
 *
 * @author avbravo
 */
@Stateless
public class AccessInfoRepository extends Repository<AccessInfo> {

    @EJB
    MongoClientProvider mongoClientProvider;
    @Override
    protected MongoClient getMongoClient() {
       return mongoClientProvider.getMongoClient();
    }
    public AccessInfoRepository(){
        super(AccessInfo.class,"spard_history","accessoinfo");
    }
    @Override
    public Object findById(String key, String value) {
       return search(key,value); 
    }
    @Override
    public Object findById(String key, Integer value) {
        return search(key,value);
    }

}

AutoincrementableRepository.java

import javax.ejb.Stateless;
import javax.ejb.EJB;
import com.avbravo.ejbjmoordb.mongodb.repository.Repository;
import com.avbravo.ejbjmoordb.pojos.Autoincrementable;
import com.avbravo.ejbspard.provider.MongoClientProvider;

import com.mongodb.MongoClient;

/**
 *
 * @author avbravo
 */
@Stateless
public class AutoincrementableRepository extends AbstractRepository<Autoincrementable> {

    @EJB
    MongoClientProvider mongoClientProvider;
    @Override
    protected MongoClient getMongoClient() {
       return mongoClientProvider.getMongoClient();
    }
    public AutoincrementableRepository(){
        super(Autoincrementable.class,"spardjsd","autoincrementable");
    }
    @Override
    public Object findById(String key, String value) {
       return search(key,value); 
    }
    @Override
    public Object findById(String key, Integer value) {
        return search(key,value);
    }

}

RevisionHistoryRepository.java

import com.avbravo.ejbjmoordb.mongodb.repository.Repository;
import com.avbravo.ejbjmoordb.pojos.RevisionHistory;
import com.avbravo.ejbspard.provider.MongoClientProvider;
import com.mongodb.MongoClient;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author avbravo
 */
@Stateless
public class RevisionHistoryRepository extends Repository<RevisionHistory> {
@EJB
MongoClientProvider mongoClientProvider;
    public RevisionHistoryRepository() {
        super(RevisionHistory.class, "spard_history","revisionhistory");
    }

    @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  search(key, value);
    }

}

Crear los Repository de los entitys

En cada uno de ellos solo se debe colocar el entity correspondiente.

BodegaRepository.java

@Stateless
public class BodegaRepository extends AbstractRepository<Bodega> {

    @EJB
    MongoClientProvider mongoClientProvider;
    @Override
    protected MongoClient getMongoClient() {
       return mongoClientProvider.getMongoClient();
    }
    public BodegaRepository(){
        super(Bodega.class,"spard","bodega");
    }
    @Override
    public Object findById(String key, String value) {
       return search(key,value); 
    }
    @Override
    public Object findById(String key, Integer value) {
        return search(key,value);
    }

}

Last updated

Was this helpful?