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.
[code]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 */[/code]
[code]@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 */
[/code]
Aqui é onde eu chamo os dados da guia pericial
[code] <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>[/code]