Ola, sou novo por aqui e com JSF, perdoem minha leiguisse kkk.
Eu criei um Xhtml que mostra um dataTable, eu gostaria que ele mostrasse 1 produto e vários modelos desse produto, porem ele mostra apenas 1 produto e 1 modelo. Quando eu tiro do dataTable e coloco em um selectItems ele mostra todos os modelos desse único produto, fiz um teste para ver se ele mostraria pelo menos a coleção, e ele mostrou perfeitamente. Depois fiz outro para que ele mostrasse o id de cada produto e seus modelos, ele tambem mostrou. Mas o que eu quero ele não faz que é mostrar todos os modelos na grid de 1 único produto. Minha estrutura esta assim. Produto - Modelo - Modeloprod. 3 tabelas. Produto tem que mostrar modelos. Os relacionamentos estão corretos senão meu selectItems não funcionava. Desde ja, obrigado.
Olá colega poderia compartilhar o codigo que vc está fazendo, porque dessa maneira podemos ajudar.
Esta vendo que o id 1 se repete, eu gostaria de mostrar ele 1 vez, na segunda coluna o produto referente a ele, e que na terceira coluna aparecessem os modelos que se referem a ele.(Eu consegui uma vez mas só trazia a coleção e não os nomes)
<h:panelGroup >
<h:form>
<p:dataTable value="#{modeloprodMB.modeloprods}" var=“x” emptyMessage=“Sem retorno!” selection="#{modeloprodMB.modeloprod}" rowKey="#{x.modelo}">
<p:column headerText=“Id” style=“font-size: 15px;” width=“5”>
<h:outputText value="#{x.produto}" />
</p:column>
<p:column headerText=“Produto” style=“font-size: 15px;” width=“5”>
<h:outputText value="#{x.produto.produto}"/>
</p:column>
<p:column headerText=“Modelo de produto” style=“font-size: 15px;” width=“5”>
<h:outputText value="#{x.modelo.modelo}" />
</p:column>
</p:dataTable>
</h:form>
</h:panelGroup>
eu consegui fazer isso que preciso em um select ficou perfeito, mas n sei colocar ele no código kkkkk…
select modelo.modelo from modelo inner join modeloproduto on modelo.id = modeloproduto.idmodelo where modeloproduto.idprod=1;
Ola colega não sei ao certo de consegui entender o que você pretende.
Por exemplo eu tenho um projeto que possui a tabela Pessoa e uma tabela Lançamentos e quando mostro na tela fica da seguinte maneira:
Então caso o que você procura fazer seja algo paracido com isso, você pode fazer o seguinte na sua classe Bean de Modelo voce deve instancia uma lista, depois que tive tudo ok nas suas classes no seu dataTable você irá criar um outro dataTable dentro este irá pecorrer a sua lista de modelo conforme o id do usuario. segue o exemplo que fiz neste projeto:
<h:dataTable value="#{pessoaBean.pessoasLista}" var=“pessoas” border=“2” cellspacing=“3”>
<f:facet name="header">LISTA DE USUARIOS CADASTRADOS</f:facet>
<h:column>
<f:facet name="header">ID</f:facet>
<h:outputText value="#{pessoas.id}" />
</h:column>
<h:column>
<f:facet name="header">NOME</f:facet>
<h:outputText value="#{pessoas.nome}" />
</h:column>
<h:column>
<f:facet name="header">SOBRENOME</f:facet>
<h:outputText value="#{pessoas.sobrenome}" />
</h:column>
<h:column>
<f:facet name="header">SEXO</f:facet>
<h:outputText value="#{pessoas.sexo}" />
</h:column>
<h:column>
<f:facet name="header">IDADE</f:facet>
<h:outputText value="#{pessoas.idade}" />
</h:column>
<h:column>
<f:facet name="header">ESPECIALIDADES</f:facet>
<h:dataTable value="#{pessoas.especialidade}" var="especialidades">
<h:column>
<h:outputText value="#{especialidades}" />
</h:column>
</h:dataTable>
</h:column>
<h:column>
<f:facet name="header">SITUAÇÃO</f:facet>
<h:outputText value="#{pessoas.situacao}" />
</h:column>
<h:column>
<f:facet name="header">LOGIN</f:facet>
<h:outputText value="#{pessoas.login}" />
</h:column>
<h:column>
<f:facet name="header">SENHA</f:facet>
<h:outputText value="#{pessoas.senha}" />
</h:column>
<h:column>
<f:facet name="header">PERFIL</f:facet>
<h:outputText value="#{pessoas.perfil}" />
</h:column>
<h:column>
<f:facet name="header">NIVEL PROFISSIONAL</f:facet>
<h:outputText value="#{pessoas.nivelProfissional}" />
</h:column>
<h:column>
<f:facet name="header">SKILLS</f:facet>
<h:dataTable value="#{pessoas.skills}" var="skill">
<h:column>
<h:outputText value="#{skill}"/>
</h:column>
</h:dataTable>
</h:column>
nesta coluna voce chama a classe que possui a lista que deseja retornar na tela
<h:column>
<f:facet name="header">LANÇAMENTOS</f:facet>
<h:dataTable value="#{lancamentoBean.lancamentos}" var="lancs">
<h:column>
<h:outputText value="#{lancs.numeroNotaFiscal}"/>
</h:column>
</h:dataTable>
</h:column>
Espero que tenha ajudado, qualquer coisa colega posta como você fez que chamou as referencias do objeto.
Ola, consegui, eu estava pegando os ítens no lugar errado, e tb não precisava do selection ali no meu dataTable, funcionou assim:
<p:dataTable value="{produtoMB.produto.itens} var=“tc”>
<p:column>#{tc.modelo.modelo}</p:column>
Mas me diz uma coisa, esses ítens estão na mesma tabela? e curti essa tabelinha editável com os botões editar e remover kkk me ensina kkk…
Alguns itens estão em tabelas diferentes ai no caso possui o relacionamento.
Posso ensinar sim para realizar as opções dos botões você criar um método que realiza os cruds de forma genérica.
Qualquer coisa podemos nos comunicar no Privado.