Bom dia a todos!
Como não tenho muito conhecimento em HQL eu prefiro usar o SQL para fazer a consulta no relatório.
Usando HLQ o relatório é gerado e quando tento colocar SQL, não funciona via aplicação. (A consulta direto com SQL no ireport traz os dados normalmente)
Onde estaria o erro?
Classe do relatório
public void reportBuilder() throws JRException {
UsuarioDao usuarioDao = new UsuarioDaoImpl();
List listaUs = usuarioDao.listaRelatorio();
JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(listaUs);
String report = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/reports/changetracker_users.jasper");
jasperPrint = JasperFillManager.fillReport(report, new HashMap(), beanCollectionDataSource);
}
DAO metodo HLQ
@Override
public List listaRelatorio(){
session = HibernateUtil.getSession();
Query query = session.createQuery("from Usuario");
List listaUs = query.list();
return listaUs;
}
DAO metodo SQL
public List listaRelatorio() {
session = HibernateUtil.getSession(); SQLQuery sqlquery = session.createSQLQuery("SELECT u.username, u.name, t.team FROM usuario u " + "INNER JOIN team t ON u.id_team = t.id_team ORDER BY name ASC"); List listaUs = sqlquery.list(); return listaUs; }
ERRO quando uso com o método em SQL:
Grave: 'net.sf.jasperreports.engine.JRException' recebido ao invocar escuta de ação '#{usuarioBean.exportToPdf}' para o componente 'exportToPdfButton'
Grave: net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : username
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:123)
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:96)
at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:100)
Caused by: java.lang.NoSuchMethodException: Unknown property 'username' on class 'class [Ljava.lang.Object;'