> For the complete documentation index, see [llms.txt](https://avbravo-2.gitbook.io/jmoordb/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/jmoordb/capitulo-11/capitulo-10.-aplicacion-java-standar-edition/clase-facade.md).

# Clase Repository

Los Repository representan el mecanismo de comunicación de la aplicación con la base de datos NoSQL.

Proporcionan los métodos para interactuar los entitys y documentos.

En el constructor indicamos en el método super(Entity.class, "basedatos","coleccion")

```
public PlanetasRepository() {
```

```
        super(Planetas.class, "myappdb", "planetas");
    }
```

**Facade: PlanetasRepository.java**

```
import com.avbravo.jmoordb.facade.AbstractRepository;
import com.avbravo.myapp.entity.Planetas;
import com.avbravo.myapp.provider.MongoClientProvider;
import com.mongodb.MongoClient;

/**
 *
 * @author avbravo
 */
public class PlanetasFacade extends AbstractFacade<Planetas> {

    MongoClientProvider mongoclientProvider;

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

    @Override
    protected MongoClient getMongoClient() {
       if(mongoclientProvider == null){
         mongoclientProvider = new MongoClientProvider();
        }     
        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);
    }

}
```

**Facade: ContinentesFacade.java**

```
public class ContinentesFacade extends AbstractFacade<Continentes> {

    MongoClientProvider mongoclientProvider = new MongoClientProvider();

    public ContinentesFacade() {
        super(Continentes.class, "myappdb", "continentes");
    }

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

}
```
