gleimar 2012-09-06 21:32:55 +00:00
parent 9793254c16
commit 4b6bd609be
3 changed files with 117 additions and 93 deletions

View File

@ -1,12 +1,13 @@
package com.rjconsultores.ventaboletos.dao.hibernate;
import java.util.LinkedHashMap;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.transform.AliasToBeanResultTransformer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
@ -15,23 +16,51 @@ import com.rjconsultores.ventaboletos.dao.ConexionDAO;
import com.rjconsultores.ventaboletos.entidad.Conexion;
import com.rjconsultores.ventaboletos.entidad.ConexionCtrlTemp;
import com.rjconsultores.ventaboletos.entidad.ConexionTemp;
import com.rjconsultores.ventaboletos.vo.conexion.ConexionVO;
@Repository("conexionDAO")
public class ConexionHibernateDAO extends GenericHibernateDAO<Conexion, Integer> implements ConexionDAO {
private static Logger log = Logger.getLogger(ConexionHibernateDAO.class);
@Autowired
public ConexionHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
@Autowired
public ConexionHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
@Override
public List<ConexionVO> buscarConexiones(Integer origenId, Integer destinoId) {
StringBuilder sb = new StringBuilder("");
sb.append("select po1.descparada as conOrigen, pd1.descparada as conDestino ,c.numgrupo as grupo ,po2.descparada as tramoOrigen, pd2.descparada as tramoDestino ");
sb.append("from ");
sb.append(" ConexionCtrl cc, ");
sb.append(" Conexion c, ");
sb.append(" Parada po1, ");
sb.append(" Parada pd1, ");
sb.append(" Parada po2, ");
sb.append(" Parada pd2 ");
sb.append("where ");
sb.append(" cc.conexionctrlId = c.conexionctrlId ");
sb.append(" and po1.paradaId = cc.origenId ");
sb.append(" and pd1.paradaId = cc.destinoId ");
sb.append(" and po2.paradaId = c.origenId ");
sb.append(" and pd2.paradaId = c.destinoId ");
sb.append(" ");
sb.append(" ");
sb.append("order by po1.descparada, pd1.descparada ,c.numgrupo, po2.descparada, pd2.descparada ");
Query query = getSession().createQuery(sb.toString());
query.setResultTransformer(new AliasToBeanResultTransformer(ConexionVO.class));
return query.list();
}
@Override
public void generarConexiones(Integer usuarioId) {
this.getSession().createQuery("DELETE ConexionTemp");
this.getSession().createQuery("DELETE ConexionCtrlTemp");
this.getSession().createQuery("DELETE ConexionTemp").executeUpdate();
this.getSession().createQuery("DELETE ConexionCtrlTemp").executeUpdate();
Query queryParadas = this.getSession().createQuery("select t.origem.paradaId,t.destino.paradaId from Tramo t where t.activo = 1 order by t.origem.paradaId ");
Query queryParadas = this.getSession().createQuery("select distinct t.origem.paradaId,t.destino.paradaId from Tramo t where t.activo = 1 order by t.origem.paradaId ");
List<Object[]> lsParadas = queryParadas.list();
StringBuilder sb = new StringBuilder("");
@ -71,7 +100,7 @@ public class ConexionHibernateDAO extends GenericHibernateDAO<Conexion, Integer>
sb.append(" t2.origem.paradaId, ");
sb.append(" t2.destino.paradaId ");
Map<String, Long> mapConexionCtrlId = new LinkedHashMap<String, Long>();
Map<String, Long> mapConexionCtrlId = new HashMap<String, Long>();
int grupo = 0;
for (Object[] obj : lsParadas) {
Integer origenId = (Integer) obj[0];
@ -89,7 +118,7 @@ public class ConexionHibernateDAO extends GenericHibernateDAO<Conexion, Integer>
Integer origen2 = (Integer) objConexion[2];
Integer destino2 = (Integer) objConexion[3];
String claveConexionCtrl = origen1 + "-" + destino2;
String claveConexionCtrl = origenId + "-" + destinoId;
Long conexionCtrlId = mapConexionCtrlId.get(claveConexionCtrl);
@ -101,7 +130,7 @@ public class ConexionHibernateDAO extends GenericHibernateDAO<Conexion, Integer>
c.setFecmodif(new java.util.Date());
c.setUsuarioId(usuarioId);
conexionCtrlId=(Long) this.getSession().save(c);
conexionCtrlId = (Long) this.getSession().save(c);
mapConexionCtrlId.put(claveConexionCtrl, conexionCtrlId);
}
@ -130,7 +159,19 @@ public class ConexionHibernateDAO extends GenericHibernateDAO<Conexion, Integer>
getSession().save(cTemp);
getSession().save(cTemp2);
}
}
this.getSession().createQuery("DELETE Conexion").executeUpdate();
this.getSession().createQuery("DELETE ConexionCtrl").executeUpdate();
sb = new StringBuilder("");
sb.append("INSERT INTO ConexionCtrl (conexionctrlId,fecmodif,activo,usuarioId,origenId,destinoId) ");
sb.append("SELECT conexionctrlId,fecmodif,activo,usuarioId,origenId,destinoId from ConexionCtrlTemp )");
this.getSession().createQuery(sb.toString()).executeUpdate();
sb = new StringBuilder("");
sb.append("INSERT INTO Conexion (conexionId,numgrupo,numsecuencia,activo,fecmodif,usuarioId,origenId,destinoId,conexionctrlId) ");
sb.append("SELECT conexionId,numgrupo,numsecuencia,activo,fecmodif,usuarioId,origenId,destinoId,conexionctrlId from ConexionTemp )");
this.getSession().createQuery(sb.toString()).executeUpdate();
}
}

View File

@ -33,7 +33,7 @@ public class Conexion implements Serializable {
@Column(name = "CONEXION_ID")
private Long conexionId;
@Column(name = "NUMGRUPO")
private Short numgrupo;
private Integer numgrupo;
@Column(name = "NUMSECUENCIA")
private Short numsecuencia;
@Column(name = "ACTIVO")
@ -43,15 +43,18 @@ public class Conexion implements Serializable {
private Date fecmodif;
@Column(name = "USUARIO_ID")
private Integer usuarioId;
@JoinColumn(name = "ORIGEN_ID", referencedColumnName = "PARADA_ID")
@Column(name = "ORIGEN_ID")
private Integer origenId;
@Column(name = "DESTINO_ID")
private Integer destinoId;
@Column(name = "CONEXIONCTRL_ID")
private Long conexionctrlId;
@JoinColumn(name = "ORIGEN_ID", referencedColumnName = "PARADA_ID",insertable=false,updatable=false)
@ManyToOne
private Parada origenId;
@JoinColumn(name = "DESTINO_ID", referencedColumnName = "PARADA_ID")
private Parada origen;
@JoinColumn(name = "DESTINO_ID", referencedColumnName = "PARADA_ID",insertable=false,updatable=false)
@ManyToOne
private Parada destinoId;
@JoinColumn(name = "CONEXIONCTRL_ID", referencedColumnName = "CONEXIONCTRL_ID")
@ManyToOne
private ConexionCtrl conexionctrlId;
private Parada destino;
public Conexion() {
}
@ -68,11 +71,11 @@ public class Conexion implements Serializable {
this.conexionId = conexionId;
}
public Short getNumgrupo() {
public Integer getNumgrupo() {
return numgrupo;
}
public void setNumgrupo(Short numgrupo) {
public void setNumgrupo(Integer numgrupo) {
this.numgrupo = numgrupo;
}
@ -108,29 +111,6 @@ public class Conexion implements Serializable {
this.usuarioId = usuarioId;
}
public Parada getOrigenId() {
return origenId;
}
public void setOrigenId(Parada origenId) {
this.origenId = origenId;
}
public Parada getDestinoId() {
return destinoId;
}
public void setDestinoId(Parada destinoId) {
this.destinoId = destinoId;
}
public ConexionCtrl getConexionctrlId() {
return conexionctrlId;
}
public void setConexionctrlId(ConexionCtrl conexionctrlId) {
this.conexionctrlId = conexionctrlId;
}
@Override
public int hashCode() {
@ -157,4 +137,28 @@ public class Conexion implements Serializable {
return "com.rjconsultores.entidad.Conexion[ conexionId=" + conexionId + " ]";
}
public Long getConexionctrlId() {
return conexionctrlId;
}
public void setConexionctrlId(Long conexionctrlId) {
this.conexionctrlId = conexionctrlId;
}
public Integer getOrigenId() {
return origenId;
}
public void setOrigenId(Integer origenId) {
this.origenId = origenId;
}
public Integer getDestinoId() {
return destinoId;
}
public void setDestinoId(Integer destinoId) {
this.destinoId = destinoId;
}
}

View File

@ -40,19 +40,14 @@ public class ConexionCtrl implements Serializable {
@Temporal(TemporalType.TIMESTAMP)
private Date fecmodif;
@Column(name = "ACTIVO")
private Short activo;
private Boolean activo;
@Column(name = "USUARIO_ID")
private Integer usuarioId;
@JoinColumn(name = "ORIGEN_ID", referencedColumnName = "PARADA_ID")
@ManyToOne
private Parada origenId;
@JoinColumn(name = "DESTINO_ID", referencedColumnName = "PARADA_ID")
@ManyToOne
private Parada destinoId;
@OneToMany(mappedBy = "conexionctrlId")
private List<Conexion> conexionList;
@OneToMany(mappedBy = "conexionctrlId")
private List<ConexionTemp> conexionTempList;
@Column(name = "ORIGEN_ID")
private Integer origenId;
@Column(name = "DESTINO_ID")
private Integer destinoId;
public ConexionCtrl() {
}
@ -77,11 +72,11 @@ public class ConexionCtrl implements Serializable {
this.fecmodif = fecmodif;
}
public Short getActivo() {
public Boolean getActivo() {
return activo;
}
public void setActivo(Short activo) {
public void setActivo(Boolean activo) {
this.activo = activo;
}
@ -93,39 +88,7 @@ public class ConexionCtrl implements Serializable {
this.usuarioId = usuarioId;
}
public Parada getOrigenId() {
return origenId;
}
public void setOrigenId(Parada origenId) {
this.origenId = origenId;
}
public Parada getDestinoId() {
return destinoId;
}
public void setDestinoId(Parada destinoId) {
this.destinoId = destinoId;
}
@XmlTransient
public List<Conexion> getConexionList() {
return conexionList;
}
public void setConexionList(List<Conexion> conexionList) {
this.conexionList = conexionList;
}
@XmlTransient
public List<ConexionTemp> getConexionTempList() {
return conexionTempList;
}
public void setConexionTempList(List<ConexionTemp> conexionTempList) {
this.conexionTempList = conexionTempList;
}
@Override
public int hashCode() {
@ -152,4 +115,20 @@ public class ConexionCtrl implements Serializable {
return "com.rjconsultores.entidad.ConexionCtrl[ conexionctrlId=" + conexionctrlId + " ]";
}
public Integer getOrigenId() {
return origenId;
}
public void setOrigenId(Integer origenId) {
this.origenId = origenId;
}
public Integer getDestinoId() {
return destinoId;
}
public void setDestinoId(Integer destinoId) {
this.destinoId = destinoId;
}
}