Otro usuario ha cambiado la fila de clave primaria oracle.jbo.Key - Another user has changed the row with primary key oracle.jbo.Key JBO 25014

El JBO 25014 o mas conocido como el usuario fantasma, se presentar por que al momento de validar la entidad hay un proceso que esta cambiando el valor de alguno de nuestros atributos, conozco 2 causas de este error:

1. Tenemos un campo en nuestra entidad con el tipo de dato TIMESTAMP, entonces al momento de crear el registro toma la hora con x segundos, y al momento de grabarlo se actualiza a x+ segundos, esto cambia el valor de la fila y se invalida la entidad provocando este error.

2. Otra causa se debe a que posiblemente la tabla a la que nuestro ViewObject esta apuntando, tenga un disparador (trigger), y este nos este actualizando un valor durante la transacción.

Solución: Debemos buscar en la entidad los campos que estén afectados por disparadores al momento de la transacción, y marcar las opciones Refresh on insert y/o Refresh on update, dependiendo del momento en que se active el disparador que lo afecta, en el caso de los atributos con tipo de dato TIMESTAMP bastaría cambiar el tipo de dato a DATE o marcar las opciones anteriormente mencionadas si definitivamente se necesita que el atributo sea de tipo TIMESTAMP, por ultimo si con lo anterior sigue fallando, marcaremos la opción Change Indicator en el atributo de la entidad.

Espero sea de ayuda este post.

Comentarios

Entradas populares