Olá galera, tudo certo?
Bem, estou com problemas no filtro da minha aplicação. No que consiste a mesma: Tenho uma tela de itensEmprestados na biblioteca ( livros, cd, jornais, revistas, etc) e desejo filtrar o nome do Usuário que “pegou” emprestado esse material (exemplar) .
Quando eu tenho uma FK, por exemplo, eu faço da seguinte maneira :
Filtro no xhtml:
<tr>
<td align="right">Exemplar:</td>
<td>
<p:selectOneMenu value="#{emprestimosxExemplaresJsfBean.emxexCodexemplar}" >
<f:selectItem itemLabel="Todos os Exemplares" itemValue="#{null}"/>
<f:selectItems value="#{emprestimosxExemplaresJsfBean.exemplarList}" var="e" itemLabel="#{e.exeCodigo}" itemValue="#{e.exeCodigo}"/>
</p:selectOneMenu>
</td>
</tr>
Filtro no Service:
private FiltrosConsulta criaFiltros(Map<String, Object> params) {
FiltrosConsulta filtros = new FiltrosConsulta();
filtros.add("UPPER(exe.emxexCodexemplar.exeCodigo) like :emxexCodexemplar", "emxexCodexemplar", params.get("emxexCodexemplar"), true, FiltrosConsulta.Like.Both);
return filtros;
}
Além disso, tenho um dataTable e pego esse valor acima pelo seguinte caminho:
<p:column headerText="Exemplar" >
<h:outputText value="#{item.emxexCodexemplar.exeCodigo}" />
</p:column>
Já com relação ao USUÁRIO, como falei anteriormente, estou com problema no filtro, pois não possuo FK e pretendo pegar da seguinte forma:
*USUARIO:
Caminho:
EmprestimoxExemplar(dominio)–> emxexCodexemprest(campo) --> Emprestimo(dominio)–>empCodusuario(campo) – > Usuariobib(dominio) --> usuNome(campo)
Estou fazendo da seguinte maneira no Service:
E no xhtml:
<tr>
<td align="right">Usuário:</td>
<td>
<p:selectOneMenu value="#{emprestimosxExemplaresJsfBean.usuNome}">
<f:selectItem itemLabel="Todos os usuários" itemValue="#{null}"/>
<f:selectItems value="#{emprestimosJsfBean.usuariosList}" var="u" itemLabel="#{u.usuNome}" itemValue="#{u.usuCodigo}"/>
</p:selectOneMenu>
</td>
</tr>
No dataTable pego o valor acima pelo seguinte caminho:
<p:column headerText="Usuário" >
<h:outputText value="#{item.emxexCodemprest.empCodusuario.usuNome}" />
</p:column>
Isso aí, se alguém se disponibizar a me ajudar, fico muito grato.
Obrigado.