@SuppressWarnings("unchecked") public NotaFiscalRemessa buscarPorIdListagemNotaFiscalSaida(final Long id) { Query q = sessionFactory .getCurrentSession() .createQuery( "SELECT h " + "FROM " + entityClass.getName() + " h " + "LEFT JOIN FETCH h.ordensServico os " + "LEFT JOIN FETCH h.volumes " + "LEFT JOIN FETCH h.cliente c " + "LEFT JOIN FETCH c.enderecos " + "WHERE h.id=:id"); q.setParameter("id", id); NotaFiscalRemessa r = (NotaFiscalRemessa) q.uniqueResult(); Query q2 = sessionFactory .getCurrentSession() .createQuery( "SELECT o FROM OrdemServico o " + "WHERE o.notaFiscalSaida.id = :id ORDER BY o.id"); q2.setParameter("id", id); List<OrdemServico> oss = q2.list(); if (oss != null) { r.setOrdensServico(new HashSet<OrdemServico>()); r.getOrdensServico().addAll(oss); } return r; }