10 de febrero de 2008

Cambios fatales en la arquitectura

Estábamos en la fase final de la programación de la aplicación web, cuando hubo más cambios. Ahora ya no se relacionaba al usuario con un solo grupo, sino que tenía que ser con n grupos. Nuestra estructura con un campo de grupo_id en la tabla de usuarios ya no servía y tuvimos que hacer una tabla unión de usuarios_grupos que me dió grandes dolores de cabeza. No fue propiamente la tabla la que obstaculizó, sino el selector múltiple en la interfaz web. Me daba un error maravillosamente explícito: ""{0}": El valor no es una opción válida.", ¡Ah, java!

Sucedió pués que estuve buscando en la web alguna solución. Los pronósticos no eran alentadores, muchos se lamentaban del mismo error sin que se ofreciera una explicación/solución al problema, el mismo error aunque con otros términos entre los corchetes. Pero fui entendiendo que lo que estaba pasando es que no había compatibilidad entre el tipo de datos que mi formulario estaba mandando, y el del objeto que debía contenerlos (para después procesarlos en otro objeto). Así pues, hice un objeto más para contener solamente los datos de ese campo del formulario y empecé a experimentar. Todo lo anterior para recibir nuevos errores, pero ahora, alentadoramente diferentes.

Cuando un sólo error te ha mantenido bloqueado por cuarentayochohoras el que aparezcan cosas diferentes es esperanzador por decir poco. Finalmente descubrí que en los formularios de java server faces, el elemento selectManyList por lo menos, suele mandar ArrayLists de Strings, no de Integers, por lo que tuve que tomar los Strings y convertirlos, y luego reformatearlos para así poder usar el objeto que se comunica con la base de datos. Un pedote pero al final salió. La semana que viene se instalará el programa. ¡Que Alá sea misericordioso!

No hay comentarios.: