October 13, 2009

JPA Entity Manager y la operación 'merge'

Durante el desarrollo de un proyecto, nos encontramos con el problema de que muchas actualizaciones que se realizaban a entidades (JPA) no se escribían en la base de datos. Revisando el log de Hibernate, encontramos que muchas veces la operación 'merge' solamente ejecutaba una selección de datos, y no asi su modificacion.

Revisando encontramos la siguiente referencia en el libro 'Seam in action' :
Merging is a crude operation and should be avoided if possible
Además el mismo autor recomienda hacer uso de las operaciones 'flush' y 'refresh' para actualizar datos o deshacer cambios. Esto nos salvo muchos problemas, ademas de habernos aclarado algunas dudas, ojala les sea útil. 

September 4, 2009

Nvidia driver en Slackware Linux 13

Este mes se lanzó el release oficial de Slackware 13, la cual tiene muchos cambios con respecto a su anterior versión, el changelog brinda mas detalles sobre el asunto.

Para probar la nueva 'distro', actualicé segun las indicaciones del UPGRADE.txt y todo fue perfecto, una de las cosas que noté es que ahora Xorg brinda un soporte básico(sin direct rendering) para las tarjetas NVIDIA. Al instalar el driver para mi tarjeta de video(GForce 5200), el servidor X no podía iniciar; luego de revisar varios logs y foros, encontré la solución(temporal, supongo).

Solamente se debe agregar el siguiente parámetro al fichero '/etc/kde/kdm/kdmrc':
ServerCmd=/usr/bin/X -ignoreABI
Ahora solamente inicien el sistema X con 'init 4' y todo perfecto.

August 15, 2009

Proyecto de grado: Tiergen

Como proyecto final de grado, dentro de la carrera de Ingeniería Informática, elegí como tema de tesis la generación de código para la norma de persistencia JPA, todo a través de un editor de diagramas de clase.

Para aumentar la capacidad de la aplicación, utilicé la arquitectura multicapas como arquitectura destino del código generado; el proyecto en si no es grande, pero si complejo, debido a los conceptos y componentes que se deben utilizar.

El proyecto fué denonimado "Tiergen" por los factores ya nombrados, y soporta las siguientes normas:
  • UML 1.4.2 ISO/IEC 19501
  • MOF 1.4 ISO/IEC 19502
  • XMI 1.2
  • Java Persistence API 1.0 JSR 220
  • Java Metadata Interface JSR 40
Las herramientas y componentes utilizados fueron:
El proyecto es un fork de la aplicación MVCase de Daniel Lucredio y actualmente está liberado con la licencia BSD, el contenedor del proyecto es Google Code y está disponible a cualquiera que tenga curiosidad sobre el tema.

Enlace al proyecto alojado en Google Code.