> For the complete documentation index, see [llms.txt](https://avbravo-2.gitbook.io/jee7/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://avbravo-2.gitbook.io/jee7/capitulo-1-ejb-mongodb/dos/facade.md).

# Facade

Los Facade nos permiten interactuar con los documentos en las bases de datos en este caso MongoDB.

Crear un Facade para cada Entity

## BahiaFacade

```
import com.avbravo.ejbtallerjsd.entity.Bahia;
import com.avbravo.ejbtallerjsd.provider.MongoClientProvider;
import com.avbravo.ejbjmoordb.mongodb.facade.AbstractFacade;
import com.mongodb.MongoClient;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author avbravo
 */
@Stateless
public class BahiaFacade extends AbstractFacade<Bahia> {
    @EJB
    MongoClientProvider mongoClientProvider;
    public BahiaFacade() {
        super(Bahia.class, "tallerjsd", "bahia");
    }

    @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);
    }

}
```

Si observa el facade Tipovehiculo solo se necesita indicar el nombre de la colección.

## TipovehiculoFacade

```
@Stateless
public class TipovehiculoFacade extends AbstractFacade<Tipovehiculo> {
    @EJB
MongoClientProvider mongoClientProvider;

    public TipovehiculoFacade() {
        super(Tipovehiculo.class, "tallerjsd", "tipovehiculo");
    }

    @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);
    }

}
```
