Boa noite, gostaria de uma ajuda e vocês, já pesquisei bastante sobre o assunto mas ainda não entendi muito bem sobre isso.
Preciso carregar uma lista lazy e exibir os dados em um <p:dataTable que está dentro de um <p:dialog e da forma que estou fazendo não dá mensagem de erro porém nada é exibido, estou usando jpa. Alguém sabe me dizer no que estou errando?.
[]s
repositorio:
public List<Pessoa> todosCompleta() {
try {
TypedQuery<Pessoa> query = manager.createQuery(
"SELECT DISTINCT p FROM Pessoa p JOIN p.infoCriminal ic LEFT JOIN FETCH p.infoCriminal JOIN p.abordagem ab LEFT JOIN FETCH p.abordagem", Pessoa.class);
return query.getResultList();
} catch (NoResultException nre) {
return null;
}
}
.xhtml
<p:commandLink id="btnInfoCriminal" action="
#{consultaPessoasCompletaBean.listaInfoCriminal}" onclick="PF('dlgInfoCriminal').show();"
style="margin-right:20px;">
<h:outputText value="Informação Criminal" />
<f:setPropertyActionListener value="#{pessoa}"
target="#{consultaPessoasCompletaBean.pessoa}" />
</p:commandLink>
<p:dataTable
value="#{consultaPessoasCompletaBean.listaInfoCriminal}" var="ic"
scrollable="true" scrollWidth="1300" border="1" cellspacing="0"
cellpadding="2" paginator="true" rows="5"
paginatorPosition="bottom">
<p:column headerText="Data da Ocorrência" width="25%"
sortBy="#{ic.dataOcorrencia}">
<h:outputText value="#{ic.dataOcorrencia}">
<f:convertDateTime dateStyle="long" pattern="dd/MM/yyyy" />
</h:outputText>
</p:column>
<p:column headerText="Artigo" width="25%">
<h:outputText value="#{ic.artigo}" />
</p:column>
<p:column headerText="Cidade" width="25%">
<h:outputText value="#{ic.cidade}" />
</p:column>
<p:column headerText="Observação" width="25%">
<h:outputText value="#{ic.obs}" />
</p:column>
</p:dataTable>
model Pessoa:
@Entity
@Table(name="pessoa")
public class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String fotoPerfil;
private String nome;
private String vulgo;
private String rg;
private String estadoRg;
private String cpf;
private Date nascimento;
private String nomeMae;
private String nomePai;
private String logradouro;
private String numero;
private String bairro;
private String cidade;
private String estados;
private Date dataCadastro;
private List<Foto> foto;
private List<InfoCriminal> infoCriminal;
private Set<Abordagem> abordagem;
private Funcionario funcionario;
Controller:
public void infoCriminal() {
listaInfoCriminal.addAll(pessoa.getInfoCriminal());
}