Skip to main content

Posts

jmoordb version 0.2/ findText()

Ya esta disponible la versión 0.2 de jmoordb y ejbmoordb. Se incluye el soporte para busquedas por texto y expresiones regulares que se utilizan en MongoDB. B úsquedas por Texto findText Base de datos MongoDB Sintaxis: public List<T> findText(String key, String value,Boolean caseSensitive,Boolean diacriticSensitive, Document... docSort) Atributo Descripción caseSensitive true :Habilita la búsqueda sensitiva (mayúscula y minúscula) false: Deshabilita la búsqueda sensitiva diacriticSensitive Habilita o deshabilita la búsqueda diacritico. El índice de texto de la versión 3 es diacrítico insensible. Es decir, el índice no distingue entre caracteres que contienen marcas diacríticas y su contraparte no marcada, como é, ê y e. Las búsquedas por texto en MongoDB se basan en la descripción:  Búsquedas por Texto MongoDB En nuestro caso son útiles por ejemplo en una aplicación Java EE para usar autocomplete o búsquedas por un texto. https://docs.mongodb.com/m...

Entendiendo Promise en JavaScript

JavaScript Promises: A Tutorial with Examples Balint Erdi de Toptal, muestra un interesante articulo donde explica Promises en Java, script mediante ejemplos muy claros. https://www.toptal.com/javascript/javascript-promises promise.then(function(value) { // Do something with the 'value' }); Es un buen articulo para entender su implementación.

Bidirectional Relationship Support in JSON

Bidirectional Relationship Support in JSON https://www.toptal.com/javascript/bidirectional-relationship-in-json un interesante articulo que nos muestra una solución elegante a este tipo de relaciones dentro de JSON.

Migrar documentos de MongoDB a Couchbase con jmoordb

Migrar documentos de MongoDB a Couchbase con jmoordb Los pasos son: Definir el Entity Definir el Facade MongoDB Definir el Facade Couchbase Definir el Provider para MongoDB Definir el Provider para Couchbase Definimos el Entity @Getter @Setter public class Planetas {     @Id     private String idplaneta;     private String planeta;     @Ignore     private Date fecha;     public Planetas() {     }     public Planetas(String idplaneta, String planeta, Date fecha) {         this.idplaneta = idplaneta;         this.planeta = planeta;         this.fecha = fecha;     }   } Definir el facade MongoDB public class PlanetasFacade extends AbstractFacade<Planetas> {  MongoClientProvider mongoclientProvider = new MongoClientProvider();     public PlanetasFacade() {     ...

jmoordb 0.1.9.2

jmoordb Libro: https://avbravo.gitbooks.io/jmoordb/content/ Jmoordb es un Object Document Mapper para Java que soporta bases de datos NoSQL (MongoDB ,OrientDB,Couchbase). Es un Framework orientado a desarrolladores Java, ya que pueden interactuar con bases de datos NoSQL desde su código Java, para los expertos en NoSQL permite interactuar desde Java con la sintaxis de NoSQL de la base de datos que utiliza, para los expertos que vienen del mundo relacional permite ejecutar instrucciones SQL que son convertidas a instrucciones NoSQL. Ofrece una sintaxis similar a JPA Permite el uso de Objetos java para operaciones CRUD Permite el uso de Document para operaciones con las colecciones de documentos Ofrece un soporte para SQL Soporta Java 8 Soporta Anotaciones Soporta Beans Validation (JSR 349) Soporta documentos embebidos Soporta documentos referenciados Definición sencilla de Entitys Métodos para operaciones de creación, eliminación, actualización , búsquedas avanzada...

Dos interesantes Articulos sobre Java Script

En Toptal podemos encontrar dos excelentes artículos: Gulp: A Web Developer's Secret Weapon for Maximizing Site Speed https://www.toptal.com/javascript/optimize-js-and-css-with-gulp En donde se muestra el proceso de automatización y optimización con Gulp.js Este otro articulo Immutability in JavaScript using Redux https://www.toptal.com/javascript/immutability-in-javascript-using-redux Muestra el proceso de crear Actions, usar inmutables librerías. Ambos son excelentes articulos para analizar.

Why You Need to Upgrade to Java 8 Already

Why You Need to Upgrade to Java 8 Already, enlace  https://www.toptal.com/java/why-you-need-to-upgrade-to-java-8-already Los amigos de Toptal han publicado un interesante articulo sobre Java 8,  se tratan temas interesantes: Lambda expressions. Stream API for working with Collections. Asynchronous task chaining with  CompletableFuture . Brand new Time API. Ejemplo de implementación de  funciones  (Integer i1, Integer i2) -> i1 % 2 - i2 % Descripción de métodos referenciados, Stream APi books.stream() .filter(book -> book.year > 2005 ) // filter out books published in or before 2005 .map(Book::getAuthor) // get the list of authors for the remaining books .filter(Objects::nonNull) // remove null authors from the list .map(Author::getName) // get the list of names for the remaining authors .forEach(System.out::println); // print the value of each r...

Definir un Entity Simple en JGMongo

Definir un Entity Simple en JGMongo Un Entity representa el documento en MongoDB, por lo que debemos describir su estructura en Java. Reglas  La clase debe extender de GenericsBeans  Implementar @Getter /@Setter  El atributo  @SerializedName("") es opcional, lo usamos cuando los nombres de campo (key) en el documento son diferentes a los nombres de propiedades @Id idenficar el PrimaryKey  Crear método toDocument() para convertir de Java o Document  Crear método toPojo() Contamos con un documento llamado Pais: {   "_id" : ObjectId("57bc789da6cca9237822eafb"),   "Siglas" : "1",   "Pais" : "Name1",   "Logo" : "--" } Representación visual: Si observa el nombre de campos (key) inician con la primera letra en mayúsculas,  y nuestros Entity deben iniciar con la primera letra en minúsculas. MongoDB(" Siglas" )  Java( siglas) Por lo tanto debemos indicar cual es e...

Hunting Memory Leaks in Java

Hunting Memory Leaks in Java Un excelente articulo publicado en Toptal.com https://www.toptal.com/java/hunting-memory-leaks-in-java donde se realiza un análisis profundo y incluye ejemplo del uso de    Java VisualVM

Buggy Java Code: The Top 10 Most Common Mistakes That Java Developers Make

Buggy Java Code: The Top 10 Most Common Mistakes That Java Developers Make es interesante articulo donde se muestran 10 de los errores más comunes al programa en Java. Toptal hace evaluaciones interesantes sobre diversas tecnologías y en esta ocasión sobre Java. Este es el listado: #1: Neglecting Existing Libraries #2: Missing the ‘break’ Keyword in a Switch-Case Block #3: Forgetting to Free Resources  #4: Memory Leaks #5: Excessive Garbage Allocation #6: Using Null References without Need #7: Ignoring Exceptions #8: Concurrent Modification Exception #9: Breaking Contracts  #10: Using Raw Type Instead of a Parameterized One

Autoincrementable en MongoDB con findOneAndUpdate() JGMongo

Existen muchas maneras de administrar campos autoincrementables, en esta ocasión mostrare la implementación que use en JGMongo  https://github.com/avbravo/jgmongo/  utilizando en metodo findOneAndUpdate() . Implementaremos el método de la clase AbstractFacade  public T findOneAndUpdate(String key, String value,String field,Integer... incremento)  Key : es el campo a buscar value: el valor de ese campo field: es el campo numérico a implementar incremento: Opcional si no se pasa ningún valor incrementa en uno el campo Problema 1: Existe una colección de documentos donde se maneja un campo entero que funcionara como autoincrementable:   Agenda{"Id":1,"evento":"A"},{"Id":2,"evento":"B"},{"Id":3,"evento":"C"} Si se elimina el evento 3,  Agenda{"Id":1,"evento":"A"},{"Id":2,"evento":"B"} Cuando se desee inserta...

Arrays en documentos con Mongodb con JGMongo

Arrays en documentos con Mongodb con JGMongo Un documento en MongoDB, es una estructura compuesta por pares (key, value). En esta ocasión mostrare como manejar Arrays de documentos mediante jgmongo  https://github.com/avbravo/jgmongo   Un framework que estoy desarrollando para MongoDB Documentos de Paises y Sedes. Tenemos dos colecciones: paises con información como esta: @Getter @Setter public class Paises extends GenericBeans { @Id     @SerializedName("Siglas")     private String siglas;     @SerializedName("Pais")     private String pais;     @SerializedName("Logo")     private String logo; y el documento sedes: @Getter @Setter public class Sedes extends GenericBeans { @Id     @SerializedName("Idsede")     private String idsede;     @SerializedName("Sede")     private String sede; @SerializedName("Paises") ...