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
Was this helpful?