Em uma classe main setando manualmente consigo persistir no banco que é uma beleza.
Acredito eu estar chamando o método de forma incorreta. Nem um erro se quer me é retornado…
Abaixo meu Bean
@ManagedBean
@SessionScoped
public class PacienteBean implements Serializable {
private Paciente paciente = new Paciente();
List <Paciente> pacientes = new ArrayList();
private PacienteDao dao = new PacienteDaoImp();
public PacienteBean() {
pacientes = dao.consultar();
}
public void salvar(){
dao.merge(paciente);
paciente = new Paciente();
pacientes = dao.consultar();
}
public void editar(){
paciente = dao.getById(paciente.getId());
}
public void deletar(){
dao.delete(paciente);
pacientes = dao.consultar();
}
//getters & setters
}
}
Minha view
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
template="./template.xhtml"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<ui:define name="conteudo">
<h:form id="form">
<p:panel header="Cadastro de Pacientes" id="panel">
<h:panelGrid columns="2">
<h:outputLabel value="Nome:" for="nome"/>
<p:inputText id="nome" value="#{pacienteBean.paciente.nome}" maxlength="40" size="40"/>
<h:outputLabel value="E-mail:" for="email"/>
<p:inputText id="email" value="#{pacienteBean.paciente.email}" maxlength="40" size="40"/>
<h:outputLabel value="Rua: " for="rua"/>
<p:inputText id="rua" value="#{pacienteBean.paciente.endereco.rua}" maxlength="40" size="40"/>
<h:outputLabel value="Bairro:" for="bairro"/>
<p:inputText id="bairro" value="#{pacienteBean.paciente.endereco.bairro}" maxlength="40" size="40"/>
<h:outputLabel value="CEP:" for="cep"/>
<p:inputMask id="cep" value="#{pacienteBean.paciente.endereco.cep}" mask="99999-999" size="40"/>
<h:outputLabel value="Celular:" for="celular"/>
<p:inputMask id="celular" value="#{pacienteBean.paciente.celular}" mask="(99) 9999 - 9999" size="40"/>
<h:outputLabel value="CPF:" for="cpf"/>
<p:inputMask id="cpf" value="#{pacienteBean.paciente.cpf}" mask="999.999.999-99" size="40"/>
<h:outputLabel value="Data de Nascimento:" for="nascimento"/>
<p:calendar id="nascimento" value="#{pacienteBean.paciente.nascimento}" pattern="dd/mm/yyyy" size="40" effect="slideDown"/>
<p:commandButton id="btnSalvar" value="Salvar" action="#{pacienteBean.salvar()}" update="form, tabela"/>
</h:panelGrid>
<p:dataTable id="tabela" value="#{pacienteBean.pacientes}" var="pac" emptyMessage="Nehum registro incluído" paginator="true" rows="10">
<f:facet name="header">
Lista de Pacientes
</f:facet>
<p:column headerText="Nome" style="text-align: center">
<h:outputText value="#{pac.nome}"/>
</p:column>
<p:column headerText="E-mail" style="text-align: center">
<h:outputText value="#{pac.email}"/>
</p:column>
<p:column headerText="Endereco" style="text-align: center">
<h:outputText value="#{pac.rua}"/>
</p:column>
<p:column headerText="Celular" style="text-align: center">
<h:outputText value="#{pac.celular}"/>
</p:column>
<p:column headerText="CPF" style="text-align: center">
<h:outputText value="#{pac.cpf}"/>
</p:column>
<p:column headerText="Nascimento" style="text-align: center">
<h:outputText value="#{pac.nascimento}"/>
</p:column>
<p:column headerText="Sexo" style="text-align: center">
<h:outputText value="#{pac.sexo}"/>
</p:column>
</p:dataTable>
</p:panel>
</h:form>
</ui:define>
</ui:composition>