Foros del Web » Programación para mayores de 30 ;) » Java »

Problema sincronizacion objeto datamodel + icefaces + hibernate

Estas en el tema de Problema sincronizacion objeto datamodel + icefaces + hibernate en el foro de Java en Foros del Web. Bueno sucede que tengo un data model el cual lo lleno desde hibernate quiero modificar un registro y hago lo siguiente public void visualizar(ActionEvent evt) ...
  #1 (permalink)  
Antiguo 02/08/2011, 10:03
 
Fecha de Ingreso: agosto-2011
Mensajes: 1
Antigüedad: 12 años, 8 meses
Puntos: 0
Exclamación Problema sincronizacion objeto datamodel + icefaces + hibernate

Bueno sucede que tengo un data model el cual lo lleno desde hibernate quiero modificar un registro y hago lo siguiente

public void visualizar(ActionEvent evt) {
dfActual = (Diasfestivos) diasFestivosModel.getRowData();
visibleEditar = true;
}

pero sucede que cuando cambio directamente el objeto dfActual me modifica el objeto dataModel

antes


despues



alguien sabe si se debe a que el objeto esta directamente enlazado a la tabla y si de ser asi como hago para liberarlo



Itc001Controller.java


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package controllers;

import beans.ITC001;
import hibernate.Diasfestivos;
import hibernate.DiasfestivosId;
import hibernate.Paises;
import java.util.Date;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

/**
*
* @author Alejo
*/
@ManagedBean
@SessionScoped
public class Itc001Controller {

ITC001 itc001;
DataModel diasFestivosModel;
Diasfestivos dfActual;
boolean visibleEditar;
Date id;
String descripcion;

public boolean isVisibleEditar() {
return visibleEditar;
}

public String getDescripcion() {
return descripcion;
}

public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}

public Date getId() {
return id;
}

public void setId(Date id) {
this.id = id;
}

public void setVisibleEditar(boolean visibleEditar) {
this.visibleEditar = visibleEditar;
}

public Diasfestivos getDfActual() {
return dfActual;
}

public void setDfActual(Diasfestivos dfActual) {
this.dfActual = dfActual;
}

public DataModel<Diasfestivos> getDiasFestivosModel() {
if (diasFestivosModel == null) {
diasFestivosModel = new ListDataModel(itc001.getListaFestivos());
}
return diasFestivosModel;
}

public void setDiasFestivosModel(DataModel diasFestivosModel) {
this.diasFestivosModel = diasFestivosModel;
}

/** Creates a new instance of Itc001Controller */
public Itc001Controller() {
itc001 = new ITC001();
cargarDiasFestivos();
}

private void cargarDiasFestivos() {
diasFestivosModel = new ListDataModel(itc001.getListaFestivos());
}

public void visualizar(ActionEvent evt) {
dfActual = (Diasfestivos) diasFestivosModel.getRowData();
visibleEditar = true;
}

public String editar() {
itc001.Actualizar(dfActual);
cargarDiasFestivos();
visibleEditar = false;
return null;
}

public void cancelarEdicion(ActionEvent evt) {
visibleEditar = false;
}
}

ITC001.java


package beans;

import hibernate.Diasfestivos;
import hibernate.HibernateUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import org.hibernate.Session;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Transaction;

/**
*
* @author Alejo
*/
public class ITC001 {

Session session;

public ITC001() {
}

public ArrayList<Diasfestivos> getListaFestivos() {
ArrayList<Diasfestivos> fest = new ArrayList<Diasfestivos>();
try {
session = HibernateUtil.getSessionFactory().getCurrentSessio n();
Transaction tx = session.beginTransaction();
Query q = session.createQuery("from Diasfestivos");
fest = new ArrayList<Diasfestivos>((List<Diasfestivos>) q.list());
} catch (Exception e) {
e.printStackTrace();
}
return fest;
}

public Diasfestivos getFestivoPorFecha(Date dt) {
Diasfestivos df = null;
SimpleDateFormat sdt = new SimpleDateFormat("yyyy-MM-dd");
org.hibernate.Transaction tx = session.beginTransaction();
Query q = session.createQuery("from Diasfestivos as df where df.id.dfeFech ='" + sdt.format(dt) + "'");
df = (Diasfestivos) q.uniqueResult();

return df;
}

public void Actualizar(Diasfestivos diaF) {
session = HibernateUtil.getSessionFactory().getCurrentSessio n();
session.beginTransaction();
session.saveOrUpdate(diaF);
session.flush();
session.getTransaction().commit();
}
}



estoy trabajando con

Netbeans 7.0
JSF 2.0
Hibernate 3.0
MySQL 5.1

Etiquetas: hibernate, icefaces, jsp-servlets, mysql, netbeans
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:37.