Java + Hibernate + (JSF)Primefaces
Será que alguém pode me dar uma ajuda, por favor. :’(
Já segui vários vídeos e tutoriais na internet, mas, sempre retorna erro.
Aparentemente para mim esta tudo certo, mas não carrega a os dados.
O principal problema é isso
Lazy loading is not implemented.
Controler da DataTable
DAO
Xhtml
Já segui vários vídeos e tutoriais na internet, mas, sempre retorna erro.
Aparentemente para mim esta tudo certo, mas não carrega a os dados.
O principal problema é isso
Lazy loading is not implemented.
Controler da DataTable
private LazyDataModel<Pessoa> dataModel; public LazyDataModel<Pessoa> getDataModel() { return dataModel; } @PostConstruct public void init() { this.dataModel = new LazyDataModel<Pessoa>() { private static final long serialVersionUID = 1L; @Override public ArrayList<Pessoa> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) { setRowCount(new PessoaDAO().getTotalRegistros().intValue()); return (ArrayList<Pessoa>) new PessoaDAO().consultaPaginacao(first, pageSize, sortField, SortOrder.ASCENDING.equals(sortOrder)); } }; }
DAO
public List<Pessoa> consultaPaginacao(int first, int pageSize, String sortField, boolean asc) { ArrayList<Pessoa> listaRetorno = new ArrayList<>(); EntityManager manager = new JpaUtil().getEntityManagerFactory(); try { Query consulta = (Query) manager.createQuery("from Pessoa"); consulta.setFirstResult(first); consulta.setMaxResults(pageSize); listaRetorno = (ArrayList<Pessoa>) consulta.getResultList(); } finally { manager.close(); } return listaRetorno; } public Long getTotalRegistros() { Long lngRetorno = 0L; EntityManager manager = new JpaUtil().getEntityManagerFactory(); try { Query consulta = (Query) manager.createQuery("SELECT count(t) from Pessoa as t") .getSingleResult(); lngRetorno = (Long) consulta.getSingleResult(); } finally { manager.close(); } return lngRetorno; }
Xhtml
<p:dataTable var="pessoa" value="#{controlerPessoa.dataModel}" paginator="true" paginatorTemplate=" " rowsPerPageTemplate="5,10,15" rows="5" lazy="true" sortMode="multiple"> <p:column headerText="Id"> <h:outputText value="#{pessoa.idPessoa}" /> </p:column> <p:column headerText="Nome"> <h:outputText value="#{pessoa.nomePessoa}" /> </p:column> </p:dataTable>`

Marcio Doas
Curtidas 0
Respostas

Rander Freitas
19/12/2017
Olá Marcio,
Na documentação do primefaces tem vários exemplos de como se implementa essa classe lazydatamodel. Segue o link:
https://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml
No exemplo acima, basta clicar na aba LazyCarDataModel.java para você ver um exemplo de como implementar os métodos dessa classe.
Na documentação do primefaces tem vários exemplos de como se implementa essa classe lazydatamodel. Segue o link:
https://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml
No exemplo acima, basta clicar na aba LazyCarDataModel.java para você ver um exemplo de como implementar os métodos dessa classe.
GOSTEI 0