Não consigo puxar lista relacionamento n:n

1 resposta
S

Bom galera estou fazer um trabalho no qual tenho um relacionamento n:n da classe guiaperecial com a tipodematerial. Porem quando vou chamar os dados da guiapericial não estou sabendo como pego o dado descricaomaterial da classe tipodematerial.

public class GuiaPericial implements Serializable {
    
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="idGuia")
    private Integer idGuia;
    
    @Column(name = "numeroGuia", length = 9, nullable = false, unique=true)
    private String numeroGuia;
    
    @Temporal(TemporalType.DATE)
    private Date dataEntrada;
    
    @Column(name = "vitima", length = 100, nullable = true)
    private String vitima;
    
    @Column(name = "envolvido", length = 100, nullable = false)
    private String envolvido;
    
    @Column(name = "referencia", length = 100, nullable = false)
    private String referencia;
    
    @Column(name = "observacao", length = 255, nullable = true)
    private String observacao;
    
    @Column(name = "localExame", length = 150, nullable = false)
    private String localExame;
    
    @ManyToOne(fetch= FetchType.LAZY)
    @OnDelete(action= OnDeleteAction.NO_ACTION)
    @JoinColumn(name="autoridade", nullable=false)
    @ForeignKey(name="fk_guiaPericial_autoridade")
    private Autoridade autoridade;
    
    @ManyToOne(fetch= FetchType.LAZY)
    @OnDelete(action= OnDeleteAction.NO_ACTION)
    @JoinColumn(name="destino", nullable=false)
    @ForeignKey(name="fk_guiaPericial_destino")
    private Destino destino;
    
    @ManyToOne(fetch= FetchType.LAZY)
    @OnDelete(action= OnDeleteAction.NO_ACTION)
    @JoinColumn(name="tipoExame", nullable=false)
    @ForeignKey(name="fk_guiaPericial_tipoExame")
    private TipoDeExame tipoExame;
    
    @ManyToMany(fetch= FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
    @JoinTable(name="GuiaMaterial", joinColumns= @JoinColumn(name="guia_id"), 
    inverseJoinColumns= @JoinColumn(name="tipoMaterial_id"))
    private List<TipoDeMaterial> tipoMaterial;
    /*Sets e gets */
@Table(name="tipo_de_material")
public class TipoDeMaterial implements Serializable {
    
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "idTipoMaterial")
    private Integer idTipoMaterial;
    @Column(name = "descricaoMaterial", length = 255, nullable = false)
    private String descricaoMaterial;

    @Enumerated
    private StatusGuiaPericialEnum status;
    
    @Override
    public String toString() {
        return "ppi.model.GuiaPericial[ idGuia=" + idGuia + " ]";
    }
    
    public List<TipoDeMaterial> getTipoMaterial() {
        return this.tipoMaterial;
    }

    public void setTipoMaterial(List<TipoDeMaterial> tipoMaterial) {
        this.tipoMaterial = tipoMaterial;
    }

    /*Demais  Sets e gets */

Aqui é onde eu chamo os dados da guia pericial

<p:panel id="panelListagemGuiaPericial" header="Lista de Guias Periciais Cadastradas" toggleable="true">
                    <h:form id="listagem">
                        <p:tabView effect="fade" effectDuration="normal">
                    <p:tab title="Guias Ativas">
                        <p:dataTable value="#{guiaPericialBean.ativa}" var="guiaPericial" rendered="#{!empty guiaPericialBean.ativa}" paginator="true" rows="10"  
                                     paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                                     rowsPerPageTemplate="5,10,15">                           
                            <p:column>
                                <f:facet name="header">Numero da Guia</f:facet>
                                #{guiaPericial.numeroGuia}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Data de Entrada</f:facet>
                                <h:outputText value="#{guiaPericial.dataEntrada}" >
                                	<f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy"/>
                                </h:outputText> 
                            </p:column>
                            <p:column>
                                <f:facet name="header">Vítima</f:facet>
                                #{guiaPericial.vitima}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Envolvido</f:facet>
                                #{guiaPericial.envolvido}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Local do Exame</f:facet>
                                #{guiaPericial.localExame}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Referência</f:facet>
                                #{guiaPericial.referencia}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Autoridade</f:facet>
                                #{guiaPericial.autoridade.nome}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Destino</f:facet>
                                #{guiaPericial.destino.nomeDestino}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Procedencia</f:facet>
                                #{guiaPericial.procedencia.descricao}
                            </p:column>

                            /*Não estou sabendo como chamar aqui a descrição dos materiais relacionados a esta guia */
                            <p:column value="#{tipoDeMaterialBean.lista}">
                                <f:facet name="header">Tipo de Material</f:facet>
                                #{tipoMaterial.descricaoMaterial}
                               
                            </p:column>
                            <p:column>
                                <f:facet name="header">Tipo de Exame</f:facet>
                                #{guiaPericial.tipoExame.descricaoExame}
                            </p:column>                            
                            <p:column>
                                <f:facet name="header">Usuario</f:facet>
                                #{guiaPericial.usuario.nome}
                            </p:column>
                            <p:column headerText="Editar" style="text-align: center">
                                <p:commandLink update=":edicao :listagem">
                                    <h:graphicImage library="images" name="editar.png"/>
                                    <f:setPropertyActionListener target="#{guiaPericialBean.guiaPericial}" value="#{guiaPericial}"/>
                                </p:commandLink>
                            </p:column>
                            <p:column headerText="Excluir" style="text-align: center">
                                <h:commandLink action="#{guiaPericialBean.excluir}"
                                               onclick="if (!confirm('Confirma a exclusão da Guia de numero: #{guiaPericial.numeroGuia}?')) return false;">
                                    <f:ajax execute="@this" render=":listagem"/>                                   
                                    <h:graphicImage library="images" name="excluir.png" style="border:0" />
                                    <f:setPropertyActionListener target="#{guiaPericialBean.guiaPericial}" value="#{guiaPericial}" />
                                </h:commandLink>
                            </p:column>
                                <p:column headerText="PDF" style="text-align: center" >
                                <h:commandLink action="#{guiaPericialBean.testePDF()}">                               	
                                	<f:setPropertyActionListener target="#{guiaPericialBean.guiaSelecionada}" value="#{guiaPericial}" />                               	
                                	<h:graphicImage library="images" name="pdf.png" title="Imprimir PDF" />
                                </h:commandLink>	
                            </p:column>
                            <p:column style="text-align: center" headerText="Vincular Usuario" >
								<p:commandButton id="addButton" oncomplete="usuDialog.show()" update=":usu"
									icon="ui-icon-plus" title="Vincular Usuario" >
									<f:setPropertyActionListener value="#{guiaPericial}"
										target="#{guiaPericialBean.guiaSelecionada}" />
								</p:commandButton>				
							</p:column>

                        </p:dataTable>                       
                        </p:tab>

1 Resposta

marciorodr0

Você vai precisar percorrer essa lista “tipoMaterial”, pode ser com um for, você pode usar um outro data table (o que eu acho que não ficaria legal…)

Criado 16 de abril de 2013
Ultima resposta 16 de abr. de 2013
Respostas 1
Participantes 2