57 lines
1.8 KiB
Plaintext
Executable File
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());
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|