Pues resulta que al desarrollar una aplicación web, con hibernate, implementé un método (que llamé ListAll) que regresaba una coleccón de objetos de tipo “Color”, obtenidos de una base de datos MySQL.

La colección era desplegada en un JSP y al ejecutar el aplicativo se podían ver todos los colores que contenía la tabla.

El problema consistía en que, si de manera externa, es decir, por fuera del aplicativo, yo modificaba un color, entonces ese cambio no se veía reflejado en mi JSP, ni aun haciendo un refresh con F5.

La única forma de ver el cambio era reiniciar la aplicación web.

La solución fue sencilla, pero primero tuve que leer mil cosas que no me sirvieron del todo, como la teoría del “first-level-cache” y el “second-level-cache”.

De hecho, pensé que la solución estaría en uno de tantos miles de posts que hay en la blogósfera, pero claro que no fue así.

Inclusive, estuve siempre cerca, pero simplemente no daba con la combinación exacta de elementos a reunir.

Como seguro ya se aburrieron de leer mis historias tristes, les diré que sólo tenia que hacer dos cosas:

1) Usar el Pool de conecciones bueno: C3POConnectionProvider

2) Invocar el método estático HibernateSessionFactory.closeSession() en un finally, para aquellos DAO que requieran saber de actualizaciones externas.

Increible, pero eso era TODO!

Saludos,

Goose

© 2017 Goose Workshop Suffusion theme by Sayontan Sinha