Capitulo 5. Documento Embebido

Un documento embebido es aquel cuyo contenido se almacena dentro de otro, en jmoordb se representa mediante la anotación @Embedded

Crear un Entity en el proyecto ejbtallerjsd, y denominarlo Categorias.java

Definir el entity Categorias.java

@Getter
@Setter
public class Categorias {

    @Id
    private String idcategoria;
    private String categoria;

    @Embedded
    private Tipovehiculo tipovehiculo;

    public Categorias() {
    }

    public Categorias(String idcategoria, String categoria, Tipovehiculo tipovehiculo) {
        this.idcategoria = idcategoria;
        this.categoria = categoria;
        this.tipovehiculo = tipovehiculo;
    }


    @Override
    public String toString() {
        return "Categorias{" + "idcategoria=" + idcategoria + ", categoria=" + categoria + ", tipovehiculo=" + tipovehiculo + '}';
    }


}

Esto indica que al guardar un documento dentro de la coleccion categorias, se guardara tambien todo el documento Tipovehiculo dentro de el.

Categorias{ "idcategoria","deportivo", "categoria":"Deportivo",

                "tipovehiculo":{"idtipovehiculo":"sedan","tipovehiculo":"Sedan"}

               }

La ventaja es que el acceso es más rapido a la información del tipo del vehiculo, pero la desventaja sera que aumentara más el espacio necesario para almacenarlo, y si se actualiza el tipo de vehiculo, sera necesario implementar a nivel de programación la actualización de cada uno de los documentos donde se haya almacenado el tipovehiculo.

Crear el Facade CategoriasFacade

@Stateless
public class CategoriasFacade extends AbstractFacade<Categorias> {
    @EJB
MongoClientProvider mongoClientProvider;
    public CategoriasFacade() {
        super(Categorias.class, "tallerdb", "categorias");
    }

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

}

Construir el proyecto nuevamente para que refleje los cambios.

Last updated