fixes bug#16379

dev:
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@98207 d1611594-4594-4d17-8e1d-87c2c4800839
master
thiago.clemente 2019-10-10 20:57:52 +00:00
parent 2bbb071293
commit 01b642592a
2 changed files with 17 additions and 7 deletions

View File

@ -4,6 +4,7 @@ import java.util.List;
import org.hibernate.Criteria; import org.hibernate.Criteria;
import org.hibernate.HibernateException; import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
import org.hibernate.criterion.Order; import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions; import org.hibernate.criterion.Restrictions;
@ -15,7 +16,6 @@ import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.rjconsultores.ventaboletos.dao.DispositivoEmbarcadaHistoricoDAO; import com.rjconsultores.ventaboletos.dao.DispositivoEmbarcadaHistoricoDAO;
import com.rjconsultores.ventaboletos.entidad.DispositivoEmbarcada;
import com.rjconsultores.ventaboletos.entidad.DispositivoEmbarcadaHistorico; import com.rjconsultores.ventaboletos.entidad.DispositivoEmbarcadaHistorico;
@Repository("dispositivoEmbarcadaHistoricoDAO") @Repository("dispositivoEmbarcadaHistoricoDAO")
@ -59,14 +59,24 @@ public class DispositivoEmbarcadaHistoricoHibernateDAO extends GenericHibernateD
return entity; return entity;
} }
@SuppressWarnings("unchecked")
@Override @Override
public List<DispositivoEmbarcadaHistorico> buscarHistoricoDispositivoPorId(Long dispositivoId) { public List<DispositivoEmbarcadaHistorico> buscarHistoricoDispositivoPorId(Long dispositivoId) {
Criteria c = getSession().createCriteria(getPersistentClass()); // Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE)); // c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.eq("dispositivoEmbarcada.dispositivoEmbarcadaId", dispositivoId)); // c.add(Restrictions.eq("dispositivoEmbarcada.dispositivoEmbarcadaId", dispositivoId));
c.addOrder(Order.desc("dispositivoEmbarcadaHistId")); // c.addOrder(Order.desc("dispositivoEmbarcadaHistId"));
//
// return (List<DispositivoEmbarcadaHistorico>)c.list();
return (List<DispositivoEmbarcadaHistorico>)c.list(); // Mantis 16258
// Query acima continha muitos joins fetchs desnecessários a partir de EMPRESA, que foram criados de forma não explícita.
// Assim a query retornava um número de registros além do real e não conseguia converter para a lista de DispositivoEmbarcadaHistorico
final String hql = "select dh from DispositivoEmbarcadaHistorico dh join fetch dh.dispositivoEmbarcada de where de.dispositivoEmbarcadaId = :dispositivoEmbarcadaId order by dh.dispositivoEmbarcadaHistId";
Query query = getSession().createQuery(hql);
query.setParameter("dispositivoEmbarcadaId", dispositivoId);
return query.list();
} }
} }

View File

@ -28,7 +28,7 @@ public class DispositivoEmbarcadaHistorico {
@JoinColumn(name = "DISPOSITIVOEMBARCADA_ID", referencedColumnName = "DISPOSITIVOEMBARCADA_ID") @JoinColumn(name = "DISPOSITIVOEMBARCADA_ID", referencedColumnName = "DISPOSITIVOEMBARCADA_ID")
@ManyToOne @ManyToOne
private DispositivoEmbarcada dispositivoEmbarcada; private DispositivoEmbarcada dispositivoEmbarcada;
@Column(name = "DESCRICAO") @Column(name = "DESCRICAO", length = 500)
private String descricao; private String descricao;
@Column(name = "ACTIVO") @Column(name = "ACTIVO")
private Boolean activo; private Boolean activo;