I have a list in which when editing a record, add a new one in the database, this new record is practically the same as "edit", but change an id that I want to change; at the time of calling the list I want to replace the old value with the new one that I create, how can I do it?
Update:
here is my bean:
package com.em.web.bean;
import com.em.exception.BusinessException;
import com.em.model.dto.CatalogoHijoDTO;
import com.em.model.dto.IpsProyectoIpsDTO;
import com.em.model.dto.ParamSoporteDTO;
import com.em.model.dto.ProyectoDTO;
import com.em.util.AbstractNegocio;
import com.em.web.business.BusinessWeb;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import org.primefaces.event.RowEditEvent;
import org.primefaces.event.SelectEvent;
@ManagedBean
@ViewScoped
public class SoporteTipoBean extends BusinessWeb implements Serializable {
private List<SelectItem> itemsContratoCatalogo, selectTiposSoportes;
private List<ProyectoDTO> listaIps;
private String ipsNombre, ipsNit, ipsid;
private ProyectoDTO ipsProyectoipsSelectedDto;
private List<ProyectoDTO> datosFiltrados;
private List<ParamSoporteDTO> lstSoportes;
private List<ParamSoporteDTO> datosParam;
private CatalogoHijoDTO idCatalogoSoporte;
private String tipo;
private Boolean estado;
private Long idSoporteTipo;
private Boolean requerido;
private Boolean opcional;
private Boolean conceptoRecobrable;
private CatalogoHijoDTO idCatalogoTipo;
private CatalogoHijoDTO idCatalogoTipoII;
private Long proyectoIpsId;
private String catalogoHijoValor;
private ParamSoporteDTO datosEditadosDTO;
private ProyectoDTO proyectoIpsSelected;
private ParamSoporteDTO nuevaParametrizacionSoporteDTO = new
ParamSoporteDTO();
@PostConstruct
public void init() {
try {
itemsContratoCatalogo =
listItemsCatalogoByNombre("soportes_completitud", Boolean.TRUE,
Boolean.TRUE, Boolean.FALSE);
selectTiposSoportes = listItemsCatalogoByNombre("tipos_contratos",
Boolean.TRUE, Boolean.TRUE, Boolean.FALSE);
itemsTipoAtencion = listItemsCatalogoByNombre("tipos_de_atención",
Boolean.TRUE, Boolean.TRUE, Boolean.FALSE);
listaIps = ripsEJB.getProyectoIpsByNombre();
ripsEJB.setEntityManager(AbstractNegocio.ENTITY_RIPS);
List<String> IpssNames = new ArrayList();
IpssNames.add("autorizaciones");
IpssNames.add("tipo_atencion_medicamentos");
} catch (Exception ex) {
Logger.getLogger(AuditoriaBean.class.getName()).log(Level.SEVERE,
null, ex);
}
}
public void onRowSelect(SelectEvent event) {
FacesMessage msg = new FacesMessage("IPS Seleccionada",
((IpsProyectoIpsDTO) event.getObject()).getIpsNombre());
FacesContext.getCurrentInstance().addMessage(null, msg);
proyectoIpsSelected = ((IpsProyectoIpsDTO) event.getObject());
try {
// trae los soportes dependiendo la ips seleccionada
lstSoportes = ripsEJB.getParametrosSoportesByProyectoIps
(proyectoIpsSelected.getProyectoIpsId ));
} catch (BusinessException ex) {
Logger.getLogger(SoporteTipoBean.class.getName()).log(Level.SEVERE,
null, ex);
}
}
public void inicializarParametrizacion() {
nuevaParametrizacionSoporteDTO = new ParamSoporteDTO();
}
public void onRowEdit(RowEditEvent event) throws Exception {
try {
ParamSoporteDTO editadosDTO = (ParamSoporteDTO) event.getObject();
if (editadosDTO.getProyectoIpsId().getProyectoIpsId() == -1l) {
editadosDTO.setIdSoporteTipo(null);
editadosDTO.setProyectoIpsId(new
ProyectoIpsDTO(proyectoIpsSelected.getProyectoIpsId()));
editadosDTO.setEstado(Boolean.TRUE);
// agrega los nuevos parametros
editadosDTO = ripsEJB.actualizarParamSoportes(editadosDTO);
// vuelve a llamar la lista de soportes
lstSoportes =
ripsEJB.getParametrosSoportesByProyectoIps
(proyectoIpsSelected.getProyectoIpsId());
} else {
editadosDTO.setEstado(Boolean.TRUE);
editadosDTO = ripsEJB.actualizarParamSoportes(editadosDTO);
lstSoportes = ripsEJB.getParametrosSoportesByProyectoIps
(proyectoIpsSelected.getProyectoIpsId());
}
lstSoportes = ripsEJB.getParametrosSoportesByProyectoIps
(proyectoIpsSelected.getProyectoIpsId());
lstSoportes.set(lstSoportes.indexOf(editadosDTO), editadosDTO);
setFacesMessage(new FacesMessage(FacesMessage.SEVERITY_INFO,
COMPLETADO, "Archivo editado éxitosamente!"));
} catch (BusinessException ex) {
Logger.getLogger(SoporteTipoBean.class.getName()).log(Level.SEVERE,
null, ex);
setFacesMessage(new FacesMessage(FacesMessage.SEVERITY_FATAL, ERROR,
"Error interno!"));
}
}
public void onRowCancel(RowEditEvent event) {
FacesMessage msg = new FacesMessage("Edición Cancelada",
((ParamSoporteDTO) event.getObject()).getIpsNombre().getIpsNombre());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public void guardarSoporteDocumental() {
try {
nuevaParametrizacionSoporteDTO.setProyectoIpsId(new
ProyectoIpsDTO(proyectoIpsSelected.getProyectoIpsId()));
nuevaParametrizacionSoporteDTO.setEstado(Boolean.TRUE);
if (nuevaParametrizacionSoporteDTO.getIdCatalogoTipo().getCatalogoHijoValor().equals("ACTIVIDAD")) {
nuevaParametrizacionSoporteDTO.setTipo("tipo_atencion");
nuevaParametrizacionSoporteDTO.setIdCatalogoTipo(nuevaParametrizacionSoporteDTO.getIdCatalogoTipoII());
} else {
nuevaParametrizacionSoporteDTO.setTipo("tipo_contrato");
}
nuevaParametrizacionSoporteDTO = ripsEJB.actualizarParamSoportes(nuevaParametrizacionSoporteDTO);
if (nuevaParametrizacionSoporteDTO.getIdSoporteTipo() != null) {
lstSoportes = ripsEJB.getParametrosSoportesByProyectoIps(proyectoIpsSelected.getProyectoIpsId());
setFacesMessage(new FacesMessage(FacesMessage.SEVERITY_INFO, INFO, "Parametrizacion creada con exito!"));
} else {
setFacesMessage(new FacesMessage(FacesMessage.SEVERITY_FATAL, ERROR, "Error no se pudo crear parametrizacion!!"));
}
} catch (Exception e) {
Logger.getLogger(SoporteTipoBean.class.getName()).log(Level.SEVERE, null, e);
setFacesMessage(new FacesMessage(FacesMessage.SEVERITY_FATAL, ERROR, "Error interno!"));
}
}
public List<SelectItem> getItemsContratoCatalogo() {
return itemsContratoCatalogo;
}
public void setItemsContratoCatalogo(List<SelectItem> itemsContratoCatalogo) {
this.itemsContratoCatalogo = itemsContratoCatalogo;
}
public List<SelectItem> getSelectTiposSoportes() {
return selectTiposSoportes;
}
public void setSelectTiposSoporrtes(List<SelectItem> selectTiposSoportes) {
this.selectTiposSoportes = selectTiposSoportes;
}
public List<IpsProyectoIpsDTO> getListaIps() {
return listaIps;
}
public void setListaIps(List<IpsProyectoIpsDTO> listaIps) {
this.listaIps = listaIps;
}
public String getIpsNombre() {
return ipsNombre;
}
public void setIpsNombre(String ipsNombre) {
this.ipsNombre = ipsNombre;
}
public IpsProyectoIpsDTO getIpsProyectoipsSelectedDto() {
return ipsProyectoipsSelectedDto;
}
public void setIpsProyectoipsSelectedDto(IpsProyectoIpsDTO ipsProyectoipsSelectedDto) {
this.ipsProyectoipsSelectedDto = ipsProyectoipsSelectedDto;
}
public String getIpsNit() {
return ipsNit;
}
public void setIpsNit(String ipsNit) {
this.ipsNit = ipsNit;
}
public String getIpsid() {
return ipsid;
}
public void setIpsid(String ipsid) {
this.ipsid = ipsid;
}
public List<IpsProyectoIpsDTO> getDatosFiltrados() {
return datosFiltrados;
}
public void setDatosFiltrados(List<IpsProyectoIpsDTO> datosFiltrados) {
this.datosFiltrados = datosFiltrados;
}
public List<ParamSoporteDTO> getLstSoportes() {
return lstSoportes;
}
public void setLstSoportes(List<ParamSoporteDTO> lstSoportes) {
this.lstSoportes = lstSoportes;
}
public CatalogoHijoDTO getIdCatalogoSoporte() {
return idCatalogoSoporte;
}
public void setIdCatalogoSoporte(CatalogoHijoDTO idCatalogoSoporte) {
this.idCatalogoSoporte = idCatalogoSoporte;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public Boolean getEstado() {
return estado;
}
public void setEstado(Boolean estado) {
this.estado = estado;
}
public Long getIdSoporteTipo() {
return idSoporteTipo;
}
public void setIdSoporteTipo(Long idSoporteTipo) {
this.idSoporteTipo = idSoporteTipo;
}
public Boolean getRequerido() {
return requerido;
}
public void setRequerido(Boolean requerido) {
this.requerido = requerido;
}
public Boolean getOpcional() {
return opcional;
}
public void setOpcional(Boolean opcional) {
this.opcional = opcional;
}
public Boolean getConceptoRecobrable() {
return conceptoRecobrable;
}
public void setConceptoRecobrable(Boolean conceptoRecobrable) {
this.conceptoRecobrable = conceptoRecobrable;
}
public CatalogoHijoDTO getIdCatalogoTipo() {
return idCatalogoTipo;
}
public void setIdCatalogoTipo(CatalogoHijoDTO idCatalogoTipo) {
this.idCatalogoTipo = idCatalogoTipo;
}
public Long getProyectoIpsId() {
return proyectoIpsId;
}
public void setProyectoIpsId(Long proyectoIpsId) {
this.proyectoIpsId = proyectoIpsId;
}
public String getCatalogoHijoValor() {
return catalogoHijoValor;
}
public void setCatalogoHijoValor(String catalogoHijoValor) {
this.catalogoHijoValor = catalogoHijoValor;
}
public List<ParamSoporteDTO> getDatosParam() {
return datosParam;
}
public void setDatosParam(List<ParamSoporteDTO> datosParam) {
this.datosParam = datosParam;
}
public ParamSoporteDTO getEditadosDTO() {
return datosEditadosDTO;
}
public void setEditadosDTO(ParamSoporteDTO datosEditadosDTO) {
this.datosEditadosDTO = datosEditadosDTO;
}
public ParamSoporteDTO getNuevaParametrizacionSoporteDTO() {
return nuevaParametrizacionSoporteDTO;
}
public void setNuevaParametrizacionSoporteDTO(ParamSoporteDTO nuevaParametrizacionSoporteDTO) {
this.nuevaParametrizacionSoporteDTO = nuevaParametrizacionSoporteDTO;
}
public CatalogoHijoDTO getIdCatalogoTipoII() {
return idCatalogoTipoII;
}
public void setIdCatalogoTipoII(CatalogoHijoDTO idCatalogoTipoII) {
this.idCatalogoTipoII = idCatalogoTipoII;
}
}