Entity
Entity
Una entidad en jmoordb es una clase en Java que representa un documento en una base de datos NoSQL, con sus atributos y relaciones.
Jmoordb ofrece una serie de anotaciones que nos permiten definir nuestras entidades de manera que podamos indicar fácilmente las características del mismo.
Diseño:
Definir los atributos:
Se representan por tipos de datos en Java que estarán asociados a las propiedades de los documentos.
por ejemplo:
private Integer id; representa el campo id de tipo entero en el documento en la base de datos.
Ejemplos
Ejemplo de un Entity Básico
El @Id define el atributo idplaneta como campo llave, y @Ignore indica que el atributo fecha sera ignorado como parte del documento.
No es necesario generar los métodos get/set ya que la anotación @Getter/@Setter las generan.
Entity
Controller
Adelantaremos un poco indicando como seria un clase controller que utiliza repository para guardar el documento en base al entity, más adelante mostrare como definir un repository, por ahora es a modo de ejemplo rápido.
Planetas planetas = new Planetas("tr", "Tierra", new Date());
planetasRepository.save(planetas);
Documento
El documento en la colección de la base de datos NoSQL tendría la siguiente representación.
Planetas{ "_id" : ObjectId("587cf876a6cca92842bf2ea9"),
"idplaneta" : "tr",
"planeta" : "Tierra"
}
Documentos Referenciados
Un documento referenciado en jmoordb es un documento que guarda solo la referencia al campo llave del otro documento, de manera que no se almacene el contenido del documento referenciado dentro de el. El framework, realiza las operaciones para serializar y deserializarlo respectivamente, se define mediante la anotación @Referenced.
Si has utilizado un modelo relacional @Referenced es una forma de manejar relaciones entre documentos.
@Referenced(document="", field="",javatype="",lazy="",repository="com.mypaquete.repository.EntityRepository")
Ejemplos de definición de @Referenced lazy
lazy= false (valor predeterminado)
Devolverá los entitys relacionados con la información de los documentos referenciados.
Continentes{idcontinente=oc, continente=Oceania, planetas=[Planetas{idplaneta=tierra, planeta=Tierra}, Planetas{idplaneta=marte, planeta=Marte}]}
lazy= true (no buscar en documentos referenciados)
Solo devolverá el valor de los campos llaves referenciados, los demás atributos serán null.
Continentes{idcontinente=oc, continente=Oceania, planetas=[Planetas{idplaneta=tierra, planeta=null}, Planetas{idplaneta=marte, planeta=null}]}
Ejemplo de un documento @Referenced
Entity
Controller
Documento Generado
Listas Referenciadas
Una lista referenciada es una lista de documentos que solo se almacena la llave primaria y que son usadas como referencia para cargar automáticamente el contenido del documento referenciado.
Entity
Controller
Documento Generado
Listas de Objetos Java
Para definir listas de objetos Java no se utilizara ninguna anotación. Solo se declara List<> de tipos de datos Java
(String, Integer, Double
Entity
Controller
Documento
Last updated