Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Jpa y triggers

Despues de crear un trigger que actualiza un campo con la suma de los otros en mysql cuando desde jpa intento recuperar los registros, llegan sin reflejarse los cambios pero en la tabla de la bd si estan bien actualizados.Solo cuando cierro la aplicacion de escritorio y la vuelvo a abrir es cuando se ven los cambios.¿que puedo hacer ?

CREATE TRIGGER `suma1` BEFORE INSERT ON `puntuacion`
FOR EACH ROW set
new.total:=new.primero+
new.segundo+new.tercero+new.cuarto+new.quinto+new.sexto+new.septimo+new.octavo

CREATE TRIGGER `sumar` BEFORE UPDATE ON `puntuacion`
FOR EACH ROW set
new.total:=new.primero+
new.segundo+new.tercero+new.cuarto+new.quinto+new.sexto+new.septimo+new.octavo

enero 26, 2013 | Unregistered Commentermik

Lo haces desde el mismo entity manager?

Quizás deja "attacheado" el objeto y cuando lo vuelves a solicitar te devuelve ese objeto y no el que está en la bbdd con la modificación del trigger.

enero 28, 2013 | Registered Commenterrobertiano

En realidad estás actualizando la base de datos fuera del alcance del ambiente JPA. Intenta a) haciendo un refresh() a la entidad para que se actualicen los valores, o b) especifica la opción de cache en "NONE" en persistence.xml. Puedes intentar utilizando @PrePersist en un método de la entidad para calcular el valor que generan tus triggers.

enero 29, 2013 | Registered Commenterantoniovl