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>
Constructor con el super(clase, database,coleccion)
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);
}
}