Este documento describe diferentes técnicas de mapeo en Hibernate/JPA como @Embedded, @Embeddable, modos de identidad como @Id, @GeneratedValue, @SequenceGenerator, modos de locking como @Version, herencia mediante @Inheritance, relaciones polimórficas, batch processing, servicios, transitividad (cascades), caching, validaciones con Hibernate Validator y Envers para auditoría. Explica recomendaciones sobre performance y también introduce conceptos como multi-tenancy.
Este documento introduce Hibernate, un framework para mapear objetos a bases de datos relacionales. Explica los conceptos básicos de ORM y cómo configurar Hibernate para realizar consultas, crear y modificar datos, y establecer relaciones entre entidades. También cubre temas avanzados como herencia, generación de SQL y estrategias de caché.
Una introducción a los conceptos y las características básicas de la API de persistencia para la plataforma Java, desde un punto de vista neutral (sin una preferencia por algún proveedor de persistencia en particular) comenzando desde el planteo de la necesidad de un ORM, y pasando luego por conceptos básicos como las relaciones entre entidades, ciclo de vida de las mismas, JPQL, criteria API.
El documento describe la API de persistencia Java Persistence (JPA). JPA es un estándar ORM que permite mapear objetos Java a tablas de una base de datos relacional de una manera declarativa mediante anotaciones. JPA proporciona una capa de abstracción sobre tecnologías de acceso a datos como JDBC para facilitar la persistencia de datos.
JPA (Java Persistence API) es un modelo de persistencia para mapear objetos Java a bases de datos relacionales usando anotaciones en lugar de archivos XML. Las principales anotaciones incluyen @Entity para marcar clases como entidades, @Id para identificar la clave primaria de una entidad, y @Basic, @OneToMany, @OneToOne, @ManyToOne y @ManyToMany para especificar atributos y relaciones. Un JPA Controller maneja las operaciones CRUD para cada clase de entidad.
Este documento introduce el framework Java Persistence API (JPA), incluyendo su arquitectura, ciclo de vida de entidades, implementaciones, y cómo funciona. JPA permite almacenar datos de objetos Java en una base de datos relacional de manera transparente mediante anotaciones y consultas JPQL similares a SQL.
El documento describe la API de persistencia de Java (JPA), la cual proporciona un estándar para gestionar datos relacionales en aplicaciones Java. JPA simplifica el desarrollo de la persistencia de datos mediante el mapeo de objetos a tablas de base de datos a través de anotaciones. Define conceptos como entidades, asociaciones, consultas y transacciones.
El documento describe el mapeo objeto-relacional (ORM) y el framework Hibernate. Explica las ventajas de usar ORM, como trabajar con objetos en lugar de filas de datos. También describe los componentes clave de Hibernate como las clases, los archivos XML de mapeo y de configuración, y cómo crear, leer, actualizar y eliminar objetos de la base de datos.
Este documento describe diferentes técnicas de mapeo en Hibernate/JPA como @Embedded, @Embeddable, modos de identidad como @Id, @GeneratedValue, @SequenceGenerator, modos de locking como @Version, herencia mediante @Inheritance, relaciones polimórficas, batch processing, servicios, transitividad (cascades), caching, validaciones con Hibernate Validator y Envers para auditoría. Explica recomendaciones sobre performance y también introduce conceptos como multi-tenancy.
Este documento introduce Hibernate, un framework para mapear objetos a bases de datos relacionales. Explica los conceptos básicos de ORM y cómo configurar Hibernate para realizar consultas, crear y modificar datos, y establecer relaciones entre entidades. También cubre temas avanzados como herencia, generación de SQL y estrategias de caché.
Una introducción a los conceptos y las características básicas de la API de persistencia para la plataforma Java, desde un punto de vista neutral (sin una preferencia por algún proveedor de persistencia en particular) comenzando desde el planteo de la necesidad de un ORM, y pasando luego por conceptos básicos como las relaciones entre entidades, ciclo de vida de las mismas, JPQL, criteria API.
El documento describe la API de persistencia Java Persistence (JPA). JPA es un estándar ORM que permite mapear objetos Java a tablas de una base de datos relacional de una manera declarativa mediante anotaciones. JPA proporciona una capa de abstracción sobre tecnologías de acceso a datos como JDBC para facilitar la persistencia de datos.
JPA (Java Persistence API) es un modelo de persistencia para mapear objetos Java a bases de datos relacionales usando anotaciones en lugar de archivos XML. Las principales anotaciones incluyen @Entity para marcar clases como entidades, @Id para identificar la clave primaria de una entidad, y @Basic, @OneToMany, @OneToOne, @ManyToOne y @ManyToMany para especificar atributos y relaciones. Un JPA Controller maneja las operaciones CRUD para cada clase de entidad.
Este documento introduce el framework Java Persistence API (JPA), incluyendo su arquitectura, ciclo de vida de entidades, implementaciones, y cómo funciona. JPA permite almacenar datos de objetos Java en una base de datos relacional de manera transparente mediante anotaciones y consultas JPQL similares a SQL.
El documento describe la API de persistencia de Java (JPA), la cual proporciona un estándar para gestionar datos relacionales en aplicaciones Java. JPA simplifica el desarrollo de la persistencia de datos mediante el mapeo de objetos a tablas de base de datos a través de anotaciones. Define conceptos como entidades, asociaciones, consultas y transacciones.
El documento describe el mapeo objeto-relacional (ORM) y el framework Hibernate. Explica las ventajas de usar ORM, como trabajar con objetos en lugar de filas de datos. También describe los componentes clave de Hibernate como las clases, los archivos XML de mapeo y de configuración, y cómo crear, leer, actualizar y eliminar objetos de la base de datos.
Este documento proporciona una introducción a Hibernate, un framework de persistencia de objetos para Java. Explica que Hibernate mapea objetos Java a tablas de base de datos de forma transparente mediante el uso de reflexión. También describe los principales componentes de Hibernate como las sesiones, factorías de sesiones, objetos persistentes y transacciones. Finalmente, incluye diagramas que ilustran la arquitectura general de Hibernate y las relaciones entre sus distintos elementos.
La serialización en Java permite convertir objetos en una representación binaria para poder almacenarlos o transmitirlos. Implementar la interfaz Serializable es suficiente para serializar la mayoría de objetos. Los objetos compuestos también se pueden serializar siempre que todos sus componentes sean serializables. Es posible extender la serialización para personalizar la conversión. La serialización tiene limitaciones como sufrir problemas ante cambios en las clases o no ser adecuada para grandes volúmenes de datos.
Introducción a Doctrine 2 ORM.
Una introducción y uso básico de Doctrine 2 ORM en PHP sin utilizar frameworks, a través de un proyecto sencillo usado como ejemplo.
El codigo PHP del proyecto se puede descargar de su repositorio de Github: (https://github.com/gonfert/cine.git)
Presentación realizada para la X Symfony Zaragoza
Este documento describe los elementos básicos de una clase en programación orientada a objetos, incluyendo atributos, operaciones, la estructura de una clase, y cómo crear objetos. Los atributos almacenan las propiedades y características de un objeto, mientras que las operaciones permiten que un objeto realice acciones. Las clases definen la estructura común para todos los objetos de ese tipo.
El documento presenta una agenda sobre Spring DAO, Spring JDBC y Spring Transaction Management. Spring DAO provee una forma sencilla de interactuar con tecnologías de persistencia como JDBC, Hibernate y JDO, abstrae el manejo de excepciones y permite cambiar fácilmente entre tecnologías. Spring JDBC provee clases de soporte como JdbcTemplate y SimpleJdbcTemplate para simplificar el acceso a bases de datos. Spring Transaction Management permite configurar atributos y tipos de transacciones de forma programática o declarativa.
Este documento presenta una introducción a Hibernate, un framework para mapeo objeto-relacional. Explica cómo Hibernate mapea elementos de una base de datos relacional a objetos de una aplicación, haciendo la aplicación independiente del lenguaje SQL y del sistema de gestión de bases de datos. También describe cómo Hibernate se puede utilizar como capa de persistencia en una arquitectura MVC para aplicaciones web. Finalmente, proporciona una guía paso a paso para crear una primera aplicación simple con Hibernate.
Este documento proporciona una introducción a los conceptos básicos de Java, incluyendo tipos de datos primitivos, clases, objetos, herencia, paquetes, métodos y constructores. También explica operadores, declaración de variables, condicionales, bucles y cadenas de caracteres.
Este documento describe conceptos clave de programación orientada a objetos como clases, objetos, tipos abstractos de datos, constructores, paquetes y la clase Object. Explica cómo declarar una clase, los diferentes tipos de visibilidad de métodos, y el uso de this. También cubre temas como recolección de objetos, miembros static, y provee ejemplos de cómo aplicar estos conceptos en Java.
Metodologia para resolver problemas con Programacion orientada a ObjetosWilliam Diaz S
Propuesta metodología para enseñar a programar
Enfatiza Métodos /técnicas
Como generar algoritmos
Método de los refinamientos sucesivos de Wirth Nickaus
Clases Objetos arrays
Excelente guía para Profesores para que enseñen realmente a programar y a solucionar problemas
Este documento introduce conceptos avanzados de modelado estructural en UML 2.0, incluyendo diferentes tipos de clasificadores como interfaces, componentes y nodos. Explica notaciones para clasificadores, elementos abstractos, multiplicidad, clases plantillas, estereotipos, relaciones de dependencia, generalización y asociación. También cubre conceptos como interfaces, roles, paquetes, instancias y diagramas de objetos.
Este documento proporciona una introducción a JavaScript y jQuery. Explica conceptos básicos de JavaScript como tipado débil, tipado dinámico y características del lenguaje. También cubre selectores, manipulación del DOM y manejo de eventos en jQuery.
Este documento describe los tipos de datos de clases y referencias en Java. Introduce los conceptos de clases, objetos y variables de referencia. Explica cómo se inicializan los atributos de un objeto, cómo se representan los objetos en memoria y las diferencias entre variables primitivas y de referencia. También cubre temas como la copia y comparación de objetos, el recolector de basura y el uso de atributos estáticos para almacenar información de clase.
UML es un lenguaje estándar para modelar sistemas de software que consiste en diagramas para especificar, visualizar, diseñar, construir, simular y documentar software. UML define conceptos como clases, objetos, atributos, operaciones, asociaciones y herencia para modelar el sistema. Los diagramas de UML ayudan a los desarrolladores a realizar tareas de especificación, diseño y documentación de software.
Este documento describe la persistencia de datos en archivos en Java. Explica que los datos de una aplicación pueden almacenarse de forma permanente escribiéndolos en un archivo en el disco. Luego describe las clases File y Scanner que permiten trabajar con archivos, y las clases Reader, Writer, InputStream y OutputStream que permiten la entrada y salida de datos a través de flujos. Finalmente, introduce la serialización de objetos para almacenarlos en archivos binarios.
El documento describe cómo Juan envía flores a su amiga Ana a través de Pedro, un florista local. Juan le da a Pedro la información necesaria sobre las flores y la dirección de Ana. Pedro tiene la responsabilidad de entregar las flores a Ana según lo solicitado.
Este documento describe los diagramas de clases y objetos en UML. Explica que una clase representa un conjunto de objetos que comparten atributos, operaciones y relaciones. Incluye ejemplos de cómo representar clases, atributos, operaciones, herencia, asociaciones y otros elementos en un diagrama de clases.
Este documento presenta una introducción al uso de Hibernate/JPA. Explica brevemente cómo se organizará la sesión, incluyendo ejemplos y ejercicios. También introduce conceptos clave como ORM, mapeo objeto-relacional, y cómo Hibernate implementa JPA para proporcionar persistencia de objetos. El objetivo es que los asistentes aprendan los fundamentos de Hibernate/JPA a través de la teoría y práctica interactiva.
Este documento describe cómo construir objetos en Simio. Explica que las definiciones de objetos tienen lógica, interfaz y vista externa. También cubre cómo crear objetos base, derivados y jerárquicos, y cómo las bibliotecas pueden compartirse para reutilizar objetos.
Este documento discute conceptos clave de Hibernate/JPA como recuperar, guardar, actualizar y eliminar entidades, y también explica diferentes tipos de relaciones como ManyToOne y OneToMany. Cubre temas como cascadas, estrategias de fetching como lazy vs eager, y cómo evitar el problema N+1 queries. El autor también menciona probar estas funcionalidades en el código de ejemplo en GitHub y discutir más temas avanzados como relaciones bidireccionales.
Este documento describe los paradigmas de programación algorítmica y estructurada, así como orientada a objetos. Explica las características de un algoritmo estructurado como ser finito, eficiente, legible y modular. También cubre conceptos como encapsulación, herencia, polimorfismo y jerarquía que son fundamentales en el paradigma orientado a objetos.
Este documento introduce Hibernate, una herramienta ORM que mapea objetos de Java a tablas de bases de datos relacionales. Explica la necesidad de Hibernate debido a la brecha entre los paradigmas orientados a objetos y relacionales, y resume la arquitectura principal de Hibernate incluyendo las interfaces Session, SessionFactory y Configuration. Además, describe los pasos básicos para configurar e iniciar Hibernate en una aplicación, como especificar opciones de configuración, crear una SessionFactory y cargar archivos de mapeo.
Este documento proporciona una introducción a Hibernate, un framework de persistencia de objetos para Java. Explica que Hibernate mapea objetos Java a tablas de base de datos de forma transparente mediante el uso de reflexión. También describe los principales componentes de Hibernate como las sesiones, factorías de sesiones, objetos persistentes y transacciones. Finalmente, incluye diagramas que ilustran la arquitectura general de Hibernate y las relaciones entre sus distintos elementos.
La serialización en Java permite convertir objetos en una representación binaria para poder almacenarlos o transmitirlos. Implementar la interfaz Serializable es suficiente para serializar la mayoría de objetos. Los objetos compuestos también se pueden serializar siempre que todos sus componentes sean serializables. Es posible extender la serialización para personalizar la conversión. La serialización tiene limitaciones como sufrir problemas ante cambios en las clases o no ser adecuada para grandes volúmenes de datos.
Introducción a Doctrine 2 ORM.
Una introducción y uso básico de Doctrine 2 ORM en PHP sin utilizar frameworks, a través de un proyecto sencillo usado como ejemplo.
El codigo PHP del proyecto se puede descargar de su repositorio de Github: (https://github.com/gonfert/cine.git)
Presentación realizada para la X Symfony Zaragoza
Este documento describe los elementos básicos de una clase en programación orientada a objetos, incluyendo atributos, operaciones, la estructura de una clase, y cómo crear objetos. Los atributos almacenan las propiedades y características de un objeto, mientras que las operaciones permiten que un objeto realice acciones. Las clases definen la estructura común para todos los objetos de ese tipo.
El documento presenta una agenda sobre Spring DAO, Spring JDBC y Spring Transaction Management. Spring DAO provee una forma sencilla de interactuar con tecnologías de persistencia como JDBC, Hibernate y JDO, abstrae el manejo de excepciones y permite cambiar fácilmente entre tecnologías. Spring JDBC provee clases de soporte como JdbcTemplate y SimpleJdbcTemplate para simplificar el acceso a bases de datos. Spring Transaction Management permite configurar atributos y tipos de transacciones de forma programática o declarativa.
Este documento presenta una introducción a Hibernate, un framework para mapeo objeto-relacional. Explica cómo Hibernate mapea elementos de una base de datos relacional a objetos de una aplicación, haciendo la aplicación independiente del lenguaje SQL y del sistema de gestión de bases de datos. También describe cómo Hibernate se puede utilizar como capa de persistencia en una arquitectura MVC para aplicaciones web. Finalmente, proporciona una guía paso a paso para crear una primera aplicación simple con Hibernate.
Este documento proporciona una introducción a los conceptos básicos de Java, incluyendo tipos de datos primitivos, clases, objetos, herencia, paquetes, métodos y constructores. También explica operadores, declaración de variables, condicionales, bucles y cadenas de caracteres.
Este documento describe conceptos clave de programación orientada a objetos como clases, objetos, tipos abstractos de datos, constructores, paquetes y la clase Object. Explica cómo declarar una clase, los diferentes tipos de visibilidad de métodos, y el uso de this. También cubre temas como recolección de objetos, miembros static, y provee ejemplos de cómo aplicar estos conceptos en Java.
Metodologia para resolver problemas con Programacion orientada a ObjetosWilliam Diaz S
Propuesta metodología para enseñar a programar
Enfatiza Métodos /técnicas
Como generar algoritmos
Método de los refinamientos sucesivos de Wirth Nickaus
Clases Objetos arrays
Excelente guía para Profesores para que enseñen realmente a programar y a solucionar problemas
Este documento introduce conceptos avanzados de modelado estructural en UML 2.0, incluyendo diferentes tipos de clasificadores como interfaces, componentes y nodos. Explica notaciones para clasificadores, elementos abstractos, multiplicidad, clases plantillas, estereotipos, relaciones de dependencia, generalización y asociación. También cubre conceptos como interfaces, roles, paquetes, instancias y diagramas de objetos.
Este documento proporciona una introducción a JavaScript y jQuery. Explica conceptos básicos de JavaScript como tipado débil, tipado dinámico y características del lenguaje. También cubre selectores, manipulación del DOM y manejo de eventos en jQuery.
Este documento describe los tipos de datos de clases y referencias en Java. Introduce los conceptos de clases, objetos y variables de referencia. Explica cómo se inicializan los atributos de un objeto, cómo se representan los objetos en memoria y las diferencias entre variables primitivas y de referencia. También cubre temas como la copia y comparación de objetos, el recolector de basura y el uso de atributos estáticos para almacenar información de clase.
UML es un lenguaje estándar para modelar sistemas de software que consiste en diagramas para especificar, visualizar, diseñar, construir, simular y documentar software. UML define conceptos como clases, objetos, atributos, operaciones, asociaciones y herencia para modelar el sistema. Los diagramas de UML ayudan a los desarrolladores a realizar tareas de especificación, diseño y documentación de software.
Este documento describe la persistencia de datos en archivos en Java. Explica que los datos de una aplicación pueden almacenarse de forma permanente escribiéndolos en un archivo en el disco. Luego describe las clases File y Scanner que permiten trabajar con archivos, y las clases Reader, Writer, InputStream y OutputStream que permiten la entrada y salida de datos a través de flujos. Finalmente, introduce la serialización de objetos para almacenarlos en archivos binarios.
El documento describe cómo Juan envía flores a su amiga Ana a través de Pedro, un florista local. Juan le da a Pedro la información necesaria sobre las flores y la dirección de Ana. Pedro tiene la responsabilidad de entregar las flores a Ana según lo solicitado.
Este documento describe los diagramas de clases y objetos en UML. Explica que una clase representa un conjunto de objetos que comparten atributos, operaciones y relaciones. Incluye ejemplos de cómo representar clases, atributos, operaciones, herencia, asociaciones y otros elementos en un diagrama de clases.
Este documento presenta una introducción al uso de Hibernate/JPA. Explica brevemente cómo se organizará la sesión, incluyendo ejemplos y ejercicios. También introduce conceptos clave como ORM, mapeo objeto-relacional, y cómo Hibernate implementa JPA para proporcionar persistencia de objetos. El objetivo es que los asistentes aprendan los fundamentos de Hibernate/JPA a través de la teoría y práctica interactiva.
Este documento describe cómo construir objetos en Simio. Explica que las definiciones de objetos tienen lógica, interfaz y vista externa. También cubre cómo crear objetos base, derivados y jerárquicos, y cómo las bibliotecas pueden compartirse para reutilizar objetos.
Este documento discute conceptos clave de Hibernate/JPA como recuperar, guardar, actualizar y eliminar entidades, y también explica diferentes tipos de relaciones como ManyToOne y OneToMany. Cubre temas como cascadas, estrategias de fetching como lazy vs eager, y cómo evitar el problema N+1 queries. El autor también menciona probar estas funcionalidades en el código de ejemplo en GitHub y discutir más temas avanzados como relaciones bidireccionales.
Este documento describe los paradigmas de programación algorítmica y estructurada, así como orientada a objetos. Explica las características de un algoritmo estructurado como ser finito, eficiente, legible y modular. También cubre conceptos como encapsulación, herencia, polimorfismo y jerarquía que son fundamentales en el paradigma orientado a objetos.
Este documento introduce Hibernate, una herramienta ORM que mapea objetos de Java a tablas de bases de datos relacionales. Explica la necesidad de Hibernate debido a la brecha entre los paradigmas orientados a objetos y relacionales, y resume la arquitectura principal de Hibernate incluyendo las interfaces Session, SessionFactory y Configuration. Además, describe los pasos básicos para configurar e iniciar Hibernate en una aplicación, como especificar opciones de configuración, crear una SessionFactory y cargar archivos de mapeo.
Este documento proporciona una introducción al manejo de contenido en Plone, incluyendo tipos de contenido como colecciones y portlets. También cubre la configuración a través de Zope, incluyendo la administración de productos adicionales, hojas de estilo, flujos de trabajo y más. Finalmente, explica cómo navegar y modificar objetos en Zope a través de la interfaz de administración de Zope.
Este documento presenta una introducción a los conceptos fundamentales de procesos en Simio. Explica que un proceso define una secuencia de pasos que pueden cambiar el estado del sistema a través del tiempo. Los pasos pueden demorar, capturar recursos, decidir, esperar eventos y más. También introduce elementos como estaciones y tokens que son referenciados por los pasos. Finalmente, provee ejemplos simples de cómo modelar lógicas comunes usando procesos en Simio.
Hibernate es una herramienta ORM que mapea objetos Java a tablas de bases de datos relacionales para permitir la persistencia de datos, utilizando sesiones para almacenar y recuperar objetos persistentes de la base de datos y simplificando el desarrollo mediante la eliminación de la diferencia objeto-relacional.
Este documento resume los objetos estándar de la biblioteca Simio. Describe objetos fijos como fuentes, servidores, sumideros, combinadores y separadores que modelan el flujo de entidades. También describe objetos recursos que representan recursos compartidos y estaciones de trabajo que modelan procesos de producción complejos con varias fases.
Hibernate es una herramienta ORM que mapea objetos Java a tablas de una base de datos relacional, permitiendo el acceso y modificación de datos de forma transparente. Hibernate resuelve la diferencia entre los paradigmas objeto-relacional al manejar automáticamente la persistencia de objetos, consultas y transacciones. Para ello, Hibernate utiliza sesiones que representan la conversación con la base de datos, permitiendo guardar, modificar y recuperar objetos de forma sencilla.
Simio ofrece modelado multi-paradigma basado en objetos. Los objetos tienen propiedades estáticas y estados dinámicos, y pueden capturar recursos de otros objetos. La biblioteca estándar incluye definiciones genéricas de objetos comunes.
Este documento describe los objetos implícitos en JavaServer Pages (JSP), incluyendo Session, Application, Config y PageContext. Session permite acceder a la sesión asociada a la petición y guardar objetos accesibles desde cualquier JSP de la sesión. Application es un objeto común para toda la aplicación web que permite almacenar información accesible desde todas las páginas. Config permite acceder a parámetros de inicialización del servlet y PageContext permite almacenar información localmente a la página.
Este documento trata sobre el desarrollo por componentes para J2EE usando Enterprise Java Beans (EJB). Explica las características clave de EJB como la triada de Session Bean, Entity Bean y Message Driven Bean, así como los conceptos de contenedor EJB, ciclo de vida y tipos de Session Bean como stateless y stateful. También incluye ejemplos prácticos de "Hola Mundo" y una calculadora para ilustrar el uso de EJB.
En esta presentación se presentan los siguientes temas:
Información, estado y formación de un proceso.
Concepto de hilo y su constitución.
Planificación de servicios POXIS.
Problemas clásicos en la comunicación de procesos.
Slides de la charla del open space de wecode 2019.
Cuento qué reglas seguimos en @plasticscm para crear el código más simple posible. Cosas como que no usamos herencia, ni sobrecarga de métodos y que nuestro mantra es "pasa parámetros y todo irá bien"
Celery es una biblioteca de Python que permite construir aplicaciones distribuidas y escalables mediante el uso de colas de tareas asíncronas. Celery divide las tareas complejas en sub-tareas más pequeñas que se ejecutan de forma distribuida en "workers". Esto permite escalar la aplicación horizontalmente al agregar más workers y mejorar el rendimiento al procesar tareas en paralelo. Celery también admite cadenas de tareas y colas especializadas para diferentes tipos de workers.
This document contains the slides from a presentation on RxJava in practice given by Javier Gamarra in Madrid on November 27-28, 2015. The presentation introduces RxJava as a library for representing operations as asynchronous data streams that can be composed declaratively and consumed by multiple objects. It discusses key RxJava concepts like Observables, Subscribers, operators, and schedulers, and provides examples of using RxJava for Android development. The presentation also addresses common questions around RxJava and encourages attendees to ask additional questions.
Los presentadores describen varios juegos que utilizaron durante 5 meses para motivar a equipos de desarrollo y enseñar valores ágiles. Los juegos incluyen preparar invitaciones en grupo, construir una torre de malvaviscos, crear historias de usuario con piezas de Lego, y dinámicas de colaboración con sillas. El objetivo era cambiar la mentalidad de los equipos y mostrar los beneficios de la iteración, la colaboración y el trabajo en equipo.
Este documento presenta la agenda de la cuarta sesión de Arduino. Incluye proyectos para usar pulsadores, leds, servos y comunicación serie. Los proyectos incluyen Simon Says, controlar servos con potenciómetros, encender una matriz de leds, leer valores por serie y comunicarse con Java. También presenta ideas para construir un coche controlado y proyectos opcionales como Tickle Robot y un cazador de luz.
Este documento presenta la agenda para la tercera sesión de Arduino. Cubre temas como digital vs analógico, sensores capacitivos, altavoces y preparación para la próxima sesión. Incluye ejercicios para leer y escribir valores analógicos usando potenciómetros, LDR y altavoces. También presenta ejercicios para usar sensores capacitivos y realizar demostraciones de POV y Simon Says usando LEDs y pulsadores.
Este documento discute conceptos clave de Hibernate/JPA como relaciones uno-a-muchos y muchos-a-uno, cascadas y tipos de fetching. Explica los propietarios de las relaciones, las listas frente a conjuntos, y relaciones avanzadas como muchos-a-muchos. También cubre mapeos adicionales de columnas como fórmulas, temporales, enumerados, LOB y tipos.
Codemotion 2013 was a conference held over two days in Madrid, Spain, attended by 1500 developers. For 10 euros, attendees received food and access to four tracks of talks on Friday and eight tracks on Saturday, along with a hackathon, meetups, and opportunities to network. While some talks were disappointing, especially on Friday, the attendee found many high-quality presentations on topics like Android and functional programming in Java, as well as ample socializing. Due to the low cost, nearby location, engaging content, and chance to see friends, the attendee looked forward to returning for Codemotion 2014.
La CAS 2013 fue una conferencia tradicional organizada por Agile Spain sobre metodologías ágiles. Incluyó charlas sobre temas como el cargo cult agile, la arquitectura y el agilismo, testing, ejemplos de empresas ágiles, técnicas para gestionar el cambio y scrumban. Los asistentes se sintieron muy motivados pero algunos opinaron que el nivel general fue bajo comparado con otras conferencias. Se anima a los asistentes a dar feedback y asistir a futuras ediciones.
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaAMADO SALVADOR
Descubre el catálogo general de la gama de productos de refrigeración del fabricante de electrodomésticos Miele, presentado por Amado Salvador distribuidor oficial Miele en Valencia. Como distribuidor oficial de electrodomésticos Miele, Amado Salvador ofrece una amplia selección de refrigeradores, congeladores y soluciones de refrigeración de alta calidad, resistencia y diseño superior de esta marca.
La gama de productos de Miele se caracteriza por su innovación tecnológica y eficiencia energética, garantizando que cada electrodoméstico no solo cumpla con las expectativas, sino que las supere. Los refrigeradores Miele están diseñados para ofrecer un rendimiento óptimo y una conservación perfecta de los alimentos, con características avanzadas como la tecnología de enfriamiento Dynamic Cooling, sistemas de almacenamiento flexible y acabados premium.
En este catálogo, encontrarás detalles sobre los distintos modelos de refrigeradores y congeladores Miele, incluyendo sus especificaciones técnicas, características destacadas y beneficios para el usuario. Amado Salvador, como distribuidor oficial de electrodomésticos Miele, garantiza que todos los productos cumplen con los más altos estándares de calidad y durabilidad.
Explora el catálogo completo y encuentra el refrigerador Miele perfecto para tu hogar con Amado Salvador, el distribuidor oficial de electrodomésticos Miele.
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)codesiret
Los protocolos son conjuntos de
normas para formatos de mensaje y
procedimientos que permiten a las
máquinas y los programas de aplicación
intercambiar información.
para programadores y desarrolladores de inteligencia artificial y machine learning, como se automatiza una cadena de valor o cadena de valor gracias a la teoría por Manuel Diaz @manuelmakemoney
La inteligencia artificial sigue evolucionando rápidamente, prometiendo transformar múltiples aspectos de la sociedad mientras plantea importantes cuestiones que requieren una cuidadosa consideración y regulación.
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...AMADO SALVADOR
Descarga el Catálogo General de Tarifas 2024 de Vaillant, líder en tecnología para calefacción, ventilación y energía solar térmica y fotovoltaica. En Amado Salvador, como distribuidor oficial de Vaillant, te ofrecemos una amplia gama de productos de alta calidad y diseño innovador para tus proyectos de climatización y energía.
Descubre nuestra selección de productos Vaillant, incluyendo bombas de calor altamente eficientes, fancoils de última generación, sistemas de ventilación de alto rendimiento y soluciones de energía solar fotovoltaica y térmica para un rendimiento óptimo y sostenible. El catálogo de Vaillant 2024 presenta una variedad de opciones en calderas de condensación que garantizan eficiencia energética y durabilidad.
Con Vaillant, obtienes más que productos de climatización: control avanzado y conectividad para una gestión inteligente del sistema, acumuladores de agua caliente de gran capacidad y sistemas de aire acondicionado para un confort total. Confía en la fiabilidad de Amado Salvador como distribuidor oficial de Vaillant, y en la resistencia de los productos Vaillant, respaldados por años de experiencia e innovación en el sector.
En Amado Salvador, distribuidor oficial de Vaillant en Valencia, no solo proporcionamos productos de calidad, sino también servicios especializados para profesionales, asegurando que tus proyectos cuenten con el mejor soporte técnico y asesoramiento. Descarga nuestro catálogo y descubre por qué Vaillant es la elección preferida para proyectos de climatización y energía en Amado Salvador.
SOPRA STERIA presenta una aplicació destinada a persones amb discapacitat intel·lectual que busca millorar la seva integració laboral i digital. Permet crear currículums de manera senzilla i intuitiva, facilitant així la seva participació en el mercat laboral i la seva independència econòmica. Aquesta iniciativa no només aborda la bretxa digital, sinó que també contribueix a reduir la desigualtat proporcionant eines accessibles i inclusives. A més, "inCV" està alineat amb els Objectius de Desenvolupament Sostenible de l'Agenda 2030, especialment els relacionats amb el treball decent i la reducció de desigualtats.
HPE presenta una competició destinada a estudiants, que busca fomentar habilitats tecnològiques i promoure la innovació en un entorn STEAM (Ciència, Tecnologia, Enginyeria, Arts i Matemàtiques). A través de diverses fases, els equips han de resoldre reptes mensuals basats en àrees com algorísmica, desenvolupament de programari, infraestructures tecnològiques, intel·ligència artificial i altres tecnologies. Els millors equips tenen l'oportunitat de desenvolupar un projecte més gran en una fase presencial final, on han de crear una solució concreta per a un conflicte real relacionat amb la sostenibilitat. Aquesta competició promou la inclusió, la sostenibilitat i l'accessibilitat tecnològica, alineant-se amb els Objectius de Desenvolupament Sostenible de l'ONU.
8. Entidades y estados en detalle
•
La sesión (y entityManager) hace varias cosas:
o Dirty Checking -> sólo actualizar las cosas que han cambiado.
o Actúa de caché de primer nivel -> sólo lee si no lo tiene en sesión
o Puede asegurar identidad de objetos
o Puede extender la conversación
12. Entidades y estados en detalle
•
Para ver el estado Persistent...
o Cread un objeto (Pepe)
o Guardad (Pepe)
o Cambiad un valor del objeto (Lola) y no llamo a save/persist/update...
o Haced un commit
o En otra sesión o en la BD, leed el valor.
Qué pasa?
Se persiste el valor
13. Entidades y estados en detalle
•
•
•
•
Yo personalmente habría esperado leer Pepe.
No llamamos a update explícitamente
Hay 1 transacción de base de datos
Cuando hacemos un save() y un rollback() no recupera el estado del objeto
en Java (obviamente)
o get() -> recupero Pepe
o cambio a Lola
o rollback() -> en BD sigue Pepe
o mi modelo Java sigue poniendo Lola
14. Entidades y estados en detalle
•
Para ver el estado Persistent tras un get/load
o Recuperad un objeto de BD
o Cambiad un valor del objeto
o Haced un commit
Qué pasa?
-> Sí ha cambiado el valor.
15. Entidades y estados en detalle
•
•
•
Esta política se llama write-behind.
Implica que las entidades en estado PERSISTENT porque
o o se ha llamado save/update/persist... dentro de una sesión...
o o se han recuperado de base de datos con un get/load...
guardan los cambios hechos hasta que se hace un commit();
•
•
Problemas?
Dudas?
16. Entidades y estados en detalle
•
•
Haced el mismo ejercicio que antes, pero cuando recuperéis la sesión llamad
a:
o session.setFlushMode(FlushMode.Manual);
Lo que inserta NO es la transacción es que POR DEFECTO (FlushMode.AUTO),
Hibernate hace un flush cuando haces un commit();
17. Entidades y estados en detalle
•
Si una entidad está en estado Persistent y hacemos un flush(), los cambios
van a la BD
19. Entidades y estados en detalle
•
•
Probadlo!
o Abrid una sesión, buscad un objeto, cerrad la sesión
o Modificad el objeto
o Abrid la sesión, buscadlo de nuevo...
Ahora tenemos 2 objetos diferentes (en Java) apuntando a la misma fila de la
BD...
20. Entidades y estados en detalle
•
Problemas con entidades detached e identidad:
o Abrid una sesión, buscad un objeto, cerrad la sesión
o Modificad el objeto
o Abrid la sesión, buscadlo de nuevo...
o Guardad el primer objeto (el que ha sido modificado) con un update
-> ERROR!
•
Si hago un update() ANTES de buscar...
o Todo funciona correctamente, update sincroniza el estado a persistent en
vez de detached.
21. Entidades y estados en detalle
•
Este caso es poco habitual pero no tan raro cómo parece:
o Típicamente no harás una consulta del elemento directamente y luego un
update().
o Pero sí que es más habitual que ALGO haga una consulta que recupere un
elemento detached (típicamente una asociación con Eager, una
precarga...)
22. Entidades y estados en detalle
•
Puedo pasar de detached a persistent de cuatro formas:
o session.update() / session.saveOrUpdate()
o session.merge (me crea un objeto "sincronizado")
Probadlo!
load(1), cerrando sesión
modificando
load(1), merge(), update()/saveOrUpdate()
o session.evict() (sacar de la sesión el objeto que acabo de recuperar)
o session.lock() (igual que el merge si sé con seguridad que no he tocado el
objeto)
•
•
•
23. Entidades y estados en detalle
•
Usually update() or saveOrUpdate() are used in the following scenario:
o the application loads an object in the first session
o the object is passed up to the UI tier
o some modifications are made to the object
o the object is passed back down to the business logic tier
o the application persists these modifications by calling update() in a
second session
24. Entidades y estados en detalle
•
saveOrUpdate() does the following:
o if the object is already persistent in this session, do nothing
o if another object associated with the session has the same identifier,
throw an exception
o if the object has no identifier property, save() it
o if the object's identifier has the value assigned to a newly instantiated
object, save() it
o if the object is versioned by a <version> or <timestamp>, and the version
property value is the same value assigned to a newly instantiated object,
save() it
o otherwise update() the object
26. Entidades y estados en detalle
•
•
•
Merge() is very different:
o if there is a persistent instance with the same identifier currently
associated with the session, copy the state of the given object onto the
persistent instance
o if there is no persistent instance currently associated with the session, try
to load it from the database, or create a new persistent instance
the persistent instance is returned
the given instance does not become associated with the session, it remains
detached
27. Entidades y estados en detalle
•
•
Otra forma de evitar estos problemas:
o LazyInitializationException
o An instance with...
y que no haya nunca entidades detached...
o es hacer conversaciones, la sesión está abierta siempre.
29. Entidades y estados en detalle
•
Patrones de transacciones:
o Sesión por operación: ANTI PATRÓN.
o Sesión por request: la más habitual.
o Conversaciones
Versioning
Unión de objetos detached
30. Entidades y estados en detalle
•
Típico flujo de Hibernate con un patrón de request
31. Entidades y estados en detalle
•
Flujo de Hibernate con un patrón conversación
32. Entidades y estados en detalle
•
•
En conversación tendremos VARIAS transacciones (en cada carga de pantalla,
vista...), mientras no guardemos nada no hay problema.
Para no guardar nada intermedio:
o Podemos controlar manualmente cuando se hace un flush del contexto
de la Sesión con session.setFlushMode
o Hacemos un flush al final de todo y ya.
33. Entidades y estados en detalle
•
Problema:
o persist(): it does not guarantee that the identifier value will be assigned
to the persistent instance immediately, the assignment might happen at
flush time. persist() also guarantees that it will not execute an INSERT
statement if it is called outside of transaction boundaries.
o save() does guarantee to return an identifier. If an INSERT has to be
executed to get the identifier ( e.g. "identity" generator, not "sequence"),
this INSERT happens immediately, no matter if you are inside or outside
of a transaction.
34. Entidades y estados en detalle
•
El problema sólo ocurre en MySQL/SQL Server si uso save...
o es un problema fácilmente mitigable :)
36. Entidades y estados en detalle
•
•
¿Qué pasa con un flush en medio de una transaccion y luego hago un
rollback?
o setFlushMode(FlushMode.MANUAL)
o session.flush()
o Probadlo!
Y si hago:
o cambio
o flush()
o cambio
o flush()
o rollback()
37. Entidades y estados en detalle
•
De las dos formas los cambios no son persistidos.
•
Las transacciones deciden si algo se guarda o no.
•
Session.flush() decide QUÉ va a la base de datos.
•
En el segundo caso (varios flush()) se envían varios updates a la BD (varias
sincronizaciones).
38. Entidades y estados en detalle
•
Conclusiones:
o Con request puro
Tened cuidado con LazyInitiali... (precargas)
Cuidado con asociar la misma entidad... (típicamente no hacer
consultas y hacer update al final)
o Con OpenSessionInView (sesión abierta en vista)
Cuidado con asociar la misma entidad.
o Con Conversaciones
Sin problemas. Hacer un flush al final y ya.
39. Entidades y estados en detalle
•
•
•
"By default, the persistence context is flushed (synchronized with the
database) at the end of each transaction."
"As the result of a truly stupid and shortsighted decision by certain nonJBoss, non-Sun and non-Sybase members of the EJB 3.0 expert group, there
is currently no simple, usable and portable way to implement atomic
conversations using EJB 3.0 persistence. However, Hibernate provides this
feature as a vendor extension to the FlushModeTypes defined by the
specification, and it is our expectation that other vendors will soon provide a
similar extension."
Flush mode manual.
43. Criteria Hibernate
•
API clásica de Hibernate (3<)...
•
No está deprecated pero sin desarrollo activo.
•
No es type safe.
•
Trabaja en base a objetos de tipo Criteria.
45. Criteria Hibernate
•
El criterio básico de comparación es un objeto de tipo Restrictions:
o Criteria criteria = session.createCriteria(___.class)
o criteria.add(Restrictions.eq("nombre_de_la_propiedad", valor));
o criteria.list();
•
Probadlo!
47. Criteria Hibernate
•
Intentad hacer una comparación que se traslade a algo como:
o select * from tabla where upper(nombre) like "%algo%"
ilike (MatchMode.)
•
Method Chaining
•
if (quieroBuscarPorAlgo) then { criteria.add() }...
49. Criteria Hibernate
Disjunction disjunction = Restrictions.disjunction();
Conjunction conjunction = Restrictions.conjunction();
conjunction.add(2 = 1);
conjunction.add(3 = 2);
disjunction.add(conjunction);
disjunction.add(Restrictions.eqOrIsNull(propertyName, value))
criteria.add(disjunction);
// where (2=1 and 3=2) or (eqOrIsNull)
50. Criteria Hibernate
•
Comparaciones más complicadas:
o sqlRestrictions()
o Subqueries
o Query by example (criteria.add(Example.create(exampleObject)))
Probadlo!
51. Criteria Hibernate
•
¿Qué consultas hacéis?
o Problemas con extensiones del lenguaje (recursividad)
o No tenemos insert/update masivo (en HQL sí)
55. Criteria JPA 2
•
Metamodel
o Nos permite hacer restricciones sin cadenas.
o Hay que generarlo: 1, 2 y 3
EntityType<Petition> Petition_ = petition.getModel();
query.where(builder.equal(petition.get(Petition_.type), "elemento"));
•
Recordad:
query.where(builder.equal(petition.get("type"),
"elemento"));
58. HQL
•
Hibernate Query Language y Java Persistence Query Language (JPQL)
o Extensiones de SQL para trabajar con objetos, sintaxis abreviada.
o Non-type-safe (basado en cadenas)
o Case Insensitive (da igual las mayúsculas: sELEct)
59. HQL
•
•
El select más sencillo de HQL tiene esta forma:
o "from com.nhpatt.user.User" y recupera todos los elementos de la clase
User (todas las filas de la tabla = select * from User).
Tienen la forma:
[select_clause] from_clause
[where_clause]
[groupby_clause]
[having_clause]
[orderby_clause]
60. HQL
•
•
Probad un select sin más!
o session.createQuery("from User").list();
o session.createCriteria(User.class).list()
Tienen en cuenta las relaciones de herencia (varias actualizaciones o varias
eliminaciones)
•
Insert, update y delete
•
HQL (y el estándar no) tiene insert
61. HQL
•
Ejemplo de Update:
String hqlUpdate = "update Petition p set p.type = :newType where p.type
= :oldType";
int updatedEntities = session.createQuery(hqlUpdate)
.setString( "newType", newType )
.setString( "oldType", oldType )
.executeUpdate();
62. HQL
•
Ejemplo de Select con Joins:
select p
from Petition p
join p.user u
where u.name like '25'
65. Native SQL Queries
•
•
En cualquier momento podemos lanzar una consulta SQL directamente con:
o session.createSQLQuery("_consulta_").list();
Probadlo!, qué devuelve?
o ...
66. Native SQL Queries
•
Podemos especificar el tipo de los resultados, para que les convierta
explícitamente:
o session.createSQLQuery("_consulta_")
.addScalar("ID", Hibernate.LONG)
.addScalar("NAME", Hibernate.STRING)
•
Es útil, pero nos gustaría conversiones automáticas a entidades
67. Native SQL Queries
•
Hibernate puede convertir el resultado de una query SQL en una entidad
(incluso con asociaciones):
o session.createSQLQuery("_consulta_").addEntity();
•
Asociaciones (eager):
session.createSQLQuery("select * from user u, Petition p WHERE p.userId =
u.id")
.addEntity()
.addJoin();
68. Native SQL Queries
•
Asociaciones:
•
Es mejor hacer joins.
select {user.*},{role.*} from Usuario user, Role role
where user.role_id = role.id")
.addEntity("user", User.class)
.addEntity("role", Role.class)
69. Native SQL Queries
•
Hibernate puede transformar resultados de cosas que no son entidades:
sess.createSQLQuery("SELECT NAME, BIRTHDATE FROM CATS")
.setResultTransformer(Transformers.aliasToBean(CatDTO.class))
70. Native SQL Queries
•
Se pueden utilizar parámetros:
query.setString(0, "");
query.setString("name", "");
"select * from tabla where columna = :name"
No se pueden reutilizar nombres, esto no vale:
"select * from tabla where columna = :name and columna2 = :name"
•
Named Queries