Boa tarde, gente estou tentando fazer um select no hibernate com count, o problema é que o hql do hibernate só esta retornando registros quando o sql é esctito como
Query q= session.createQuery(" FROM Aviso_sinistros WHERE CTR_COD_CONTRATO = 52 AND AVS_ENVIO_TRONADOR = 'S' AND AVS_DATA_ENVIO_TRONADOR "
+ " BETWEEN :start and :end "
+ " AND COM_TIPO_PESSOA = 'T' group by CTR_COD_CONTRATO, AVS_DATA_ENVIO_TRONADOR, AVS_ENVIO_TRONADOR");
quando escrevo com
Query q= session.createQuery("select CTR_COD_CONTRATO, AVS_DATA_ENVIO_TRONADOR, AVS_ENVIO_TRONADOR FROM Aviso_sinistros WHERE CTR_COD_CONTRATO = 52 AND AVS_ENVIO_TRONADOR = 'S' AND AVS_DATA_ENVIO_TRONADOR "
+ " BETWEEN :start and :end "
+ " AND COM_TIPO_PESSOA = 'T' group by CTR_COD_CONTRATO, AVS_DATA_ENVIO_TRONADOR, AVS_ENVIO_TRONADOR");
por algum motivo quando tento rodar o select inteiro ele dá o seguinte erro:
Se alguem puder ajudar fico muito agradecido. segue abaixo as classes e print do erro:
package br.com.connection;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import javax.persistence.TemporalType;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;
import br.com.model.tabela.Aviso_sinistros;
public class TesteConfronto {
public static void main(String[] args){
Configuration configuration = new Configuration();
configuration.configure();
SessionFactory factory = configuration.buildSessionFactory();
Session session = factory.openSession();
/*
Query q= session.createQuery("from A2000030 where num_poliza in('570012032931')");
*/
try{
Query q= session.createQuery("select CTR_COD_CONTRATO, AVS_DATA_ENVIO_TRONADOR, AVS_ENVIO_TRONADOR FROM Aviso_sinistros WHERE CTR_COD_CONTRATO = 52 AND AVS_ENVIO_TRONADOR = 'S' AND AVS_DATA_ENVIO_TRONADOR "
+ " BETWEEN :start and :end "
+ " AND COM_TIPO_PESSOA = 'T' group by CTR_COD_CONTRATO, AVS_DATA_ENVIO_TRONADOR, AVS_ENVIO_TRONADOR");
Calendar c = Calendar.getInstance();
c.set(2017, Calendar.MARCH, 8);
Date data = c.getTime();
q.setDate("start", data);
q.setDate("end", data);
List<Aviso_sinistros> avsin = q.getResultList();
for(Aviso_sinistros av:avsin){
Calendar datasin = av.getAVS_DATA_ENVIO_TRONADOR();
SimpleDateFormat formatdatasin = new SimpleDateFormat("yyyy/MM/dd");
String formatted = formatdatasin.format(datasin.getTime());
System.out.println(av.getCTR_COD_CONTRATO()+";"+formatted+";"+av.getAVS_ENVIO_TRONADOR());
}
}finally{
session.close();
factory.close();
}
}
}
</code>
<code>
package br.com.model.tabela;
import java.util.Calendar;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Formula;
@Entity
@Table(name="AVSINI.AVISO_SINISTROS")
public class Aviso_sinistros {
@Id
private Long CTR_COD_CONTRATO;
private Calendar AVS_DATA_ENVIO_TRONADOR;
private String AVS_ENVIO_TRONADOR;
public Long getCTR_COD_CONTRATO() {
return CTR_COD_CONTRATO;
}
public void setCTR_COD_CONTRATO(Long cTR_COD_CONTRATO) {
CTR_COD_CONTRATO = cTR_COD_CONTRATO;
}
public Calendar getAVS_DATA_ENVIO_TRONADOR() {
return AVS_DATA_ENVIO_TRONADOR;
}
public void setAVS_DATA_ENVIO_TRONADOR(Calendar aVS_DATA_ENVIO_TRONADOR) {
AVS_DATA_ENVIO_TRONADOR = aVS_DATA_ENVIO_TRONADOR;
}
public String getAVS_ENVIO_TRONADOR() {
return AVS_ENVIO_TRONADOR;
}
public void setAVS_ENVIO_TRONADOR(String aVS_ENVIO_TRONADOR) {
AVS_ENVIO_TRONADOR = aVS_ENVIO_TRONADOR;
}
}
