package com.fp.base.persistence.util.helper; import com.fp.common.exception.ExceptionHandler; import com.fp.common.logger.APPLogger; import com.fp.dto.hb.HibernateBean; import com.fp.persistence.commondb.PersistenceHelper; import com.fp.persistence.commondb.PersistenceManager; import com.fp.persistence.commondb.data.SessionData; import com.fp.persistence.commondb.data.ThreadFacade; /** * Clase que se encarga en insertar o actualizar un registro en la base de datos en un hilo diferente. * @author Jorge Vaca. * @version 2.1 * */ public class SaveBeanInOtherSession extends Thread { /**Codigo de compania con el cual se obtiene la coneccion a la base de datos.*/ private Integer company; /**Objeto a enviar a la base de datos.*/ private HibernateBean bean; public SaveBeanInOtherSession(Integer pCompany, HibernateBean pHibernateBean) throws Exception { company = pCompany; bean = pHibernateBean; } /** * Metodo que se encarga de inicio de ejecucion del hilo. */ public void run(){ try { SessionData s = new SessionData(); s.setCompany(company); ThreadFacade.setSaveRequest(s); PersistenceHelper.setEntityManager(PersistenceManager.getInstance().createEntityManagerLocal()); PersistenceHelper.beginTransaction(); PersistenceHelper.saveOrUpdate(bean); PersistenceHelper.commitTransaction(); } catch (Exception e) { APPLogger.getLogger().error(e); }finally{ try { //Cierra la sesion de base de datos con la cual se ejecuto el proceso de fin de dia. PersistenceHelper.closeSession(); } catch (Exception e) { ExceptionHandler eh = new ExceptionHandler(e,"es"); APPLogger.getLogger().error(eh.getStackTrace()); } } } }