maia_modificado/.svn/pristine/2a/2aa6248418315a90e6284cef617...

57 lines
1.8 KiB
Plaintext
Executable File

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());
}
}
}
}