Cuando deseamos actualizar algunos campos de una tabla y no todos, a veces nos encontramos con el mensaje de error:
private void _init() throws Exception {
habitacionesRowSet.setDataSourceName("java:comp/env/jdbc/hoteles");
habitacionesRowSet.setCommand("SELECT idhabitacion,foto1,foto2,foto3,foto4,foto5,foto6,foto7,foto8 FROM habitaciones");
habitacionesRowSet.setTableName("habitaciones");
habitacionesDataProvider.setCachedRowSet((javax.sql.rowset.CachedRowSet)getValue("#{habitacionesAgregarFotos.habitacionesRowSet}"));
}
El metodo init quedaria asi:
public void init() {
// Realizar iniciaciones heredadas de la superclase
super.init();
// Realizar inicio de aplicación que debe finalizar
// *antes* de que se inicien los componentes administrados
// TODO - Agregar código de inicio propio aquí
//
// Iniciar componentes administrados automáticamente
// *Nota* - esta lógica NO debe modificarse
try {
_init();
} catch (Exception e) {
log("habitacionesAgregarFotos Initialization Failure", e);
throw e instanceof FacesException ? (FacesException) e: new FacesException(e);
}
//
// Realizar inicio de aplicación que debe finalizar
// *después* de que se inicien los componentes administrados
// TODO - Agregar código de inicio propio aquí
String idHabitacion = getSessionBean1().getIdHabitacion();
RowKey habitacionesRowKey = habitacionesDataProvider.findFirst("habitaciones.idhabitacion", idHabitacion);
habitacionesDataProvider.setCursorRow(habitacionesRowKey);
habitacionesDataProvider.refresh();
}
y el evento guardar
public String guardarButton_action() {
// TODO: Procesar la acción de clic de botón. El valor de devolución es un
// nombre de caso de navegación en el que un valor nulo devolverá la misma página.
try {
habitacionesDataProvider.commitChanges();
habitacionesDataProvider.refresh();
info("Se guardaron los cambios....");
this.guardarButton.setDisabled(true);
} catch (Exception e) {
error("No se pueden guardar los cambios -- " + e);
log("Exception: " + e);
}
return null;
}
- No se pueden guardar los cambios -- java.lang.RuntimeException: Número de conflictos al sincronizar: 1 SyncResolver.UPDATE_ROW_CONFLICT fila 4 intento de actualizar una fila que otro usuario ha actualizado o eliminado
private void _init() throws Exception {
habitacionesRowSet.setDataSourceName("java:comp/env/jdbc/hoteles");
habitacionesRowSet.setCommand("SELECT idhabitacion,foto1,foto2,foto3,foto4,foto5,foto6,foto7,foto8 FROM habitaciones");
habitacionesRowSet.setTableName("habitaciones");
habitacionesDataProvider.setCachedRowSet((javax.sql.rowset.CachedRowSet)getValue("#{habitacionesAgregarFotos.habitacionesRowSet}"));
}
El metodo init quedaria asi:
public void init() {
// Realizar iniciaciones heredadas de la superclase
super.init();
// Realizar inicio de aplicación que debe finalizar
// *antes* de que se inicien los componentes administrados
// TODO - Agregar código de inicio propio aquí
//
// Iniciar componentes administrados automáticamente
// *Nota* - esta lógica NO debe modificarse
try {
_init();
} catch (Exception e) {
log("habitacionesAgregarFotos Initialization Failure", e);
throw e instanceof FacesException ? (FacesException) e: new FacesException(e);
}
//
// Realizar inicio de aplicación que debe finalizar
// *después* de que se inicien los componentes administrados
// TODO - Agregar código de inicio propio aquí
String idHabitacion = getSessionBean1().getIdHabitacion();
RowKey habitacionesRowKey = habitacionesDataProvider.findFirst("habitaciones.idhabitacion", idHabitacion);
habitacionesDataProvider.setCursorRow(habitacionesRowKey);
habitacionesDataProvider.refresh();
}
y el evento guardar
public String guardarButton_action() {
// TODO: Procesar la acción de clic de botón. El valor de devolución es un
// nombre de caso de navegación en el que un valor nulo devolverá la misma página.
try {
habitacionesDataProvider.commitChanges();
habitacionesDataProvider.refresh();
info("Se guardaron los cambios....");
this.guardarButton.setDisabled(true);
} catch (Exception e) {
error("No se pueden guardar los cambios -- " + e);
log("Exception: " + e);
}
return null;
}
Comments