Salve galera, como vão?
Galera, to desenvolvendo um sistema com JSF2+Hibernate+PrimeFaces, onde tenho duas classes:
InstituicaoBean
[code]@Entity
@Table(name = “TBInstituicao”)
public class InstituicaoBean implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "idInstituicao", nullable = false)
private Integer idInstituicao;
@Column(name = "nomeInstituicao", nullable = false, length = 50)
private String nomeInstituicao;
@Column(name = "enderecoInstituicao", nullable = false, length = 50)
private String enderecoInstituicao;
@Column(name = "diretorInstituicao", length = 50)
private String diretorInstituicao;
@Column(name = "telefoneInstituicao", length = 15)
private String telefoneInstituicao;
@OneToMany(mappedBy = "instituicaoBean")
private List<CategoriaEnsinoBean> categoriasEnsino;[/code]
E CategoriaEnsinoBean
[code]@Entity
@Table(name = “TBCategoriaEnsino”)
public class CategoriaEnsinoBean implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "idCategoriaEnsino")
private Integer idCategoriaEnsino;
@Column(name = "descricaoCategoria", nullable = false, length = 30)
private String descricaoCategoria;
@Column(name = "quantidadeAlunos", nullable = false)
private Integer quantidadeALunos;
@ManyToOne
@JoinColumn(name = "FK_idInstituicao", nullable = false)
private InstituicaoBean instituicaoBean;[/code]
O meu problema é o seguinte: nao consigo salvar categorias de ensino no banco!
Essas sao minhas outras classes:
InstituicaoMB:
[code]@ManagedBean
@RequestScoped
public class InstituicaoMB {
private String idInstituicao;
private String nomeInstituicao;
private String enderecoInstituicao;
private String diretorInstituicao;
private String telefoneInstituicao;
private InstituicaoBean instituicaoBean;[/code]
CategoriaEnsinoMB:
[code]@ManagedBean
@RequestScoped
public class CategoriaEnsinoMB {
private String idCategoriaEnsino;
private String descricaoCategoria;
private String quantidadeAlunos;
private String instituicaoBean;[/code]
E o meu xhtml:
<h:form id="formulario">
<p:growl id="alertas" />
<h:panelGrid columns="2">
<p:outputLabel value="Instituicao: "
styleClass="labels"/>
<p:selectOneMenu id="slcInstituicoes"
value="#{instituicaoMB.instituicaoBean}"
styleClass="input-big">
<f:selectItems value="#{instituicaoMB.exibirTodasInstituicoes()}" />
</p:selectOneMenu>
<p:outputLabel value="Faixa Etaria: "
styleClass="labels" />
<p:selectOneMenu id="slcFaixaEtaria"
value="#{categoriaEnsinoMB.descricaoCategoria}"
styleClass="input-big">
<f:selectItem itemValue="Educacao Infantil" itemLabel="Educacao Infatil" />
<f:selectItem itemValue="Ensino Fundamental" itemLabel="Ensino Fundamental" />
<f:selectItem itemValue="Ensino Medio" itemLabel="Ensino Medio" />
</p:selectOneMenu>
<p:outputLabel value="Quantidade de Alunos:"
styleClass="labels" />
<p:inputText id="txtQuantidadeAlunos"
value="#{categoriaEnsinoMB.quantidadeAlunos}"
styleClass="input-small" />
<p:commandButton value="Salvar"
id="btnSalvar"
action="#{instituicaoMB.salvarCategoriaEnsino()}"
update=":painel"/>
<p:commandButton value="Limpar" />
</h:form>
A idéia aqui é selecionar no selectOneMenu o nome da instituicao, depois no outro a faixa etária, e no inputText o numero de alunos por faixa etária.
Após isso, ao clicar em “Salvar”, ele salvaria a(s) faixa(s) etária(s) para aquela instituicao.
Como eu poderia estar passando os atributos para os ManagedBeans fazerem a persistencia?