Boa noite, estou com o seguinte problema.
Estou usando primefaces + hibernate + jsf 2
Acontece que quando vou inserir o primeiro registro ele me retorna o erro do titulo, e não insere o registro. (target unreachable '#{medicoBean.selectMedico.nome}' returned null
Quando eu comento a parte que chama o método, ele insere normal os registros. Depois disso, volto o método, ele também causa o erro, mas se eu seleciono qualquer registro no data table ele volta a inserir normalmente. Ou seja, sempre antes de inserir tenho que ter um registro previamente selecionado. Segue abaixo os meus códigos
cadMedico.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<body>
<h:head>
<link rel="StyleSheet" type="txt/css" href="css/estilo.css" media="screen" />
</h:head>
<div id="topo">
</div>
<div id="conteudo">
<p:panel styleClass="panel" header="Cadastro de Medico" menuTitle="Cadastro de Médico" >
<h1></h1>
<h:form id="form" style="width: 99%; font-size:11px;color: #0000ff;">
<h:panelGrid columns="2" cellpadding="2" border="0" style="width:100%">
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Id:" />
<p:inputText style="height:25px;width:20%; font-size: 11px;
font-family:Arial,sans-serif,verdana;font-color: #00f;" value="#{medicoBean.medico.id}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Nome:" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.nome}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="CRM:"/>
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.CRM}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Uf CRM:" />
<p:selectOneMenu style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.ufCrm}">
<f:selectItem itemLabel="Acre" itemValue="AC" />
<f:selectItem itemLabel="Alagoas" itemValue="AL" />
<f:selectItem itemLabel="Amapá" itemValue="AP"/>
<f:selectItem itemLabel="Amazonas" itemValue="AM"/>
<f:selectItem itemLabel="Bahia" itemValue="BA"/>
<f:selectItem itemLabel="Ceará" itemValue="CE"/>
<f:selectItem itemLabel="Distrito Federal" itemValue="DF"/>
<f:selectItem itemLabel="Espírito Santo" itemValue="ES" />
<f:selectItem itemLabel="Goiás" itemValue="GO" />
<f:selectItem itemLabel="Maranhão" itemValue="MA" />
<f:selectItem itemLabel="Mato Grosso" itemValue="MT" />
<f:selectItem itemLabel="Minas Gerais" itemValue="MG" />
<f:selectItem itemLabel="Paraná" itemValue="PR" />
<f:selectItem itemLabel="Paraíba" itemValue="PB" />
<f:selectItem itemLabel="Pará" itemValue="PA" />
<f:selectItem itemLabel="Pernambuco" itemValue="PE" />
<f:selectItem itemLabel="Piauí" itemValue="PI" />
<f:selectItem itemLabel="Rio de Janeiro" itemValue="RJ" />
<f:selectItem itemLabel="Rio Grande do Norte" itemValue="RN" />
<f:selectItem itemLabel="Rio Grande do Sul" itemValue="RS" />
<f:selectItem itemLabel="Rondônia" itemValue="RO" />
<f:selectItem itemLabel="Roraima" itemValue="RR" />
<f:selectItem itemLabel="Santa Catarina" itemValue="SC" />
<f:selectItem itemLabel="Sergipe" itemValue="SE" />
<f:selectItem itemLabel="São Paulo" itemValue="SP" />
<f:selectItem itemLabel="Tocantins" itemValue="TO" />
</p:selectOneMenu>
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Especialidade:" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.especialidade}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Data Nascimento:" />
<p:calendar autocomplete="true" style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.nascimento}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Telefone:" />
<p:inputMask mask="([telefone removido]" style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.telefone}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Celular" />
<p:inputMask mask="(99) 9 9999-9999" style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.celular}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="RG:" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.RG}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="CPF:" />
<p:inputMask mask="[CPF removido]" style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.CPF}" />
<p:outputLabel style="font-size:12px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Dados do Endereço" />
<hr width="99%" style="font-size:12px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" size="1px" color="blue" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="CEP:" />
<p:inputMask mask="99999-999" style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.cep}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Cidade" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.cidade}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Estado:" />
<p:selectOneMenu style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.estado}">
<f:selectItem itemLabel="Acre" itemValue="AC" />
<f:selectItem itemLabel="Alagoas" itemValue="AL" />
<f:selectItem itemLabel="Amapá" itemValue="AP"/>
<f:selectItem itemLabel="Amazonas" itemValue="AM"/>
<f:selectItem itemLabel="Bahia" itemValue="BA"/>
<f:selectItem itemLabel="Ceará" itemValue="CE"/>
<f:selectItem itemLabel="Distrito Federal" itemValue="DF"/>
<f:selectItem itemLabel="Espírito Santo" itemValue="ES" />
<f:selectItem itemLabel="Goiás" itemValue="GO" />
<f:selectItem itemLabel="Maranhão" itemValue="MA" />
<f:selectItem itemLabel="Mato Grosso" itemValue="MT" />
<f:selectItem itemLabel="Minas Gerais" itemValue="MG" />
<f:selectItem itemLabel="Paraná" itemValue="PR" />
<f:selectItem itemLabel="Paraíba" itemValue="PB" />
<f:selectItem itemLabel="Pará" itemValue="PA" />
<f:selectItem itemLabel="Pernambuco" itemValue="PE" />
<f:selectItem itemLabel="Piauí" itemValue="PI" />
<f:selectItem itemLabel="Rio de Janeiro" itemValue="RJ" />
<f:selectItem itemLabel="Rio Grande do Norte" itemValue="RN" />
<f:selectItem itemLabel="Rio Grande do Sul" itemValue="RS" />
<f:selectItem itemLabel="Rondônia" itemValue="RO" />
<f:selectItem itemLabel="Roraima" itemValue="RR" />
<f:selectItem itemLabel="Santa Catarina" itemValue="SC" />
<f:selectItem itemLabel="Sergipe" itemValue="SE" />
<f:selectItem itemLabel="São Paulo" itemValue="SP" />
<f:selectItem itemLabel="Tocantins" itemValue="TO" />
</p:selectOneMenu>
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Endereço:" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.endereco}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Complemento:" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.complemento}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Bairro:" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.medico.bairro}" />
<p:commandButton style="height:22px;font-size:10px;font-family:Sans-serif,Arial,Verdana;
color:#00f;font-weight:bold;" icon="ui-icon-plus" value="Inserir" action="#{medicoBean.Adiconar()}"
process="@form" update=":form:medico"/>
<p:commandButton style="height:22px;font-size:10px;font-family:Sans-serif,Arial,Verdana;
color:#00f;font-weight:bold;" immediate="true" ajax="true"
icon="ui-icon-trash" value="Limpar/Novo" type="reset"/>
<!--
<p:commandButton style="height:22px;font-size:10px;font-family:Sans-serif,Arial,Verdana;
color:#00f;font-weight:bold;" icon="ui-icon-new" value="Limpar/Novo" action="#{pacienteBean.Limpar()}"
process="@form" update="@all" />
-->
</h:panelGrid>
<p:dataTable id="medico" paginator="true" rows="10" var="med" value="#{medicoBean.listaMedico()}"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,20" rowKey="#{med.id}" selection="#{medicoBean.selectMedico}" selectionMode="single" >
<p:ajax event="rowSelect"/>
<p:column style="heigth:12px;color:#00f; font-weight:bold;" headerText="Id">
#{med.id}
</p:column>
<p:column headerText="Nome">
#{med.nome}
</p:column>
<f:facet name="footer">
<p:commandButton value="Detalhes" icon="ui-icon-search"
update=":form:display" oncomplete="dgAtualizar.show()" process="@this"/>
</f:facet>
</p:dataTable>
<p:dialog id="dialog" header="Atualizar Usuário" widgetVar="dgAtualizar" resizable="false"
width="50%" showEffect="clip" hideEffect="fold">
<h:panelGrid id="display" columns="2" cellpadding="5">
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Id:" />
<p:outputLabel style="font-size:20px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="#{medicoBean.selectMedico.id}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Nome:" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.nome}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="CRM:"/>
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.CRM}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Uf CRM:" />
<p:selectOneMenu style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#medicoBean.selectMedico.ufCrm}">
<f:selectItem itemLabel="Acre" itemValue="AC" />
<f:selectItem itemLabel="Alagoas" itemValue="AL" />
<f:selectItem itemLabel="Amapá" itemValue="AP"/>
<f:selectItem itemLabel="Amazonas" itemValue="AM"/>
<f:selectItem itemLabel="Bahia" itemValue="BA"/>
<f:selectItem itemLabel="Ceará" itemValue="CE"/>
<f:selectItem itemLabel="Distrito Federal" itemValue="DF"/>
<f:selectItem itemLabel="Espírito Santo" itemValue="ES" />
<f:selectItem itemLabel="Goiás" itemValue="GO" />
<f:selectItem itemLabel="Maranhão" itemValue="MA" />
<f:selectItem itemLabel="Mato Grosso" itemValue="MT" />
<f:selectItem itemLabel="Minas Gerais" itemValue="MG" />
<f:selectItem itemLabel="Paraná" itemValue="PR" />
<f:selectItem itemLabel="Paraíba" itemValue="PB" />
<f:selectItem itemLabel="Pará" itemValue="PA" />
<f:selectItem itemLabel="Pernambuco" itemValue="PE" />
<f:selectItem itemLabel="Piauí" itemValue="PI" />
<f:selectItem itemLabel="Rio de Janeiro" itemValue="RJ" />
<f:selectItem itemLabel="Rio Grande do Norte" itemValue="RN" />
<f:selectItem itemLabel="Rio Grande do Sul" itemValue="RS" />
<f:selectItem itemLabel="Rondônia" itemValue="RO" />
<f:selectItem itemLabel="Roraima" itemValue="RR" />
<f:selectItem itemLabel="Santa Catarina" itemValue="SC" />
<f:selectItem itemLabel="Sergipe" itemValue="SE" />
<f:selectItem itemLabel="São Paulo" itemValue="SP" />
<f:selectItem itemLabel="Tocantins" itemValue="TO" />
</p:selectOneMenu>
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Especialidade:" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.especialidade}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Data Nascimento:" />
<p:calendar autocomplete="true" style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.nascimento}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Telefone:" />
<p:inputMask mask="([telefone removido]" style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.telefone}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Celular" />
<p:inputMask mask="(99) 9 9999-9999" style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.celular}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="RG:" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.RG}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="CPF:" />
<p:inputMask mask="[CPF removido]" style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.CPF}" />
<p:outputLabel style="font-size:12px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Dados do Endereço" />
<hr width="99%" style="font-size:12px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" size="1px" color="blue" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="CEP:" />
<p:inputMask mask="99999-999" style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.cep}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Cidade" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.cidade}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Estado:" />
<p:selectOneMenu style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.estado}">
<f:selectItem itemLabel="Acre" itemValue="AC" />
<f:selectItem itemLabel="Alagoas" itemValue="AL" />
<f:selectItem itemLabel="Amapá" itemValue="AP"/>
<f:selectItem itemLabel="Amazonas" itemValue="AM"/>
<f:selectItem itemLabel="Bahia" itemValue="BA"/>
<f:selectItem itemLabel="Ceará" itemValue="CE"/>
<f:selectItem itemLabel="Distrito Federal" itemValue="DF"/>
<f:selectItem itemLabel="Espírito Santo" itemValue="ES" />
<f:selectItem itemLabel="Goiás" itemValue="GO" />
<f:selectItem itemLabel="Maranhão" itemValue="MA" />
<f:selectItem itemLabel="Mato Grosso" itemValue="MT" />
<f:selectItem itemLabel="Minas Gerais" itemValue="MG" />
<f:selectItem itemLabel="Paraná" itemValue="PR" />
<f:selectItem itemLabel="Paraíba" itemValue="PB" />
<f:selectItem itemLabel="Pará" itemValue="PA" />
<f:selectItem itemLabel="Pernambuco" itemValue="PE" />
<f:selectItem itemLabel="Piauí" itemValue="PI" />
<f:selectItem itemLabel="Rio de Janeiro" itemValue="RJ" />
<f:selectItem itemLabel="Rio Grande do Norte" itemValue="RN" />
<f:selectItem itemLabel="Rio Grande do Sul" itemValue="RS" />
<f:selectItem itemLabel="Rondônia" itemValue="RO" />
<f:selectItem itemLabel="Roraima" itemValue="RR" />
<f:selectItem itemLabel="Santa Catarina" itemValue="SC" />
<f:selectItem itemLabel="Sergipe" itemValue="SE" />
<f:selectItem itemLabel="São Paulo" itemValue="SP" />
<f:selectItem itemLabel="Tocantins" itemValue="TO" />
</p:selectOneMenu>
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Endereço:" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.endereco}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Complemento:" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.complemento}" />
<p:outputLabel style="font-size:16px;color: #00f;font-weight:bold;
font-family:sans-serif,arial,verdana;" value="Bairro:" />
<p:inputText style="height:25px;width:100%; font-size: 11px;
font-family:Arial,sans-serif,verdana;color: #00f;" value="#{medicoBean.selectMedico.bairro}" />
<p:commandButton style="height:22px;font-size:10px;font-family:Sans-serif,Arial,Verdana;
color:#00f;font-weight:bold;" icon="ui-icon-plus" value="Atualizar" action="#{medicoBean.Atualizar()}"
process="@form" update=":form:medico" oncomplete="dgAtualizar.hide()" />
</h:panelGrid>
</p:dialog>
</h:form>
<a href="acessoAtendente.jsf"> Voltar </a>
</p:panel>
</div>
<div id="rodape"></div>
</body>
</html>
MedicoDAO
package br.com.pew.dao;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.FlushMode;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.context.internal.ManagedSessionContext;
import org.primefaces.model.SelectableDataModel;
import br.com.pew.model.Medico;
import br.com.pew.model.Pessoa;
import br.com.pew.util.HibernateUtil;
public class MedicoDAO {
SessionFactory sf = HibernateUtil.getSessionFactory();
Transaction trans;
Session currentSession;
private List<Medico> list;
public void addMedico(Medico med){
try {
currentSession = sf.openSession();
currentSession.setFlushMode(FlushMode.MANUAL);
ManagedSessionContext.bind(currentSession);
currentSession.beginTransaction();
Medico medico = new Medico();
medico.setNome(med.getNome());
medico.setBairro(med.getBairro());
medico.setCelular(med.getCelular());
medico.setCep(med.getCep());
medico.setCidade(med.getCidade());
medico.setComplemento(med.getComplemento());
medico.setCPF(med.getCPF());
medico.setCRM(med.getCRM());
medico.setEndereco(med.getEndereco());
medico.setEspecialidade(med.getEspecialidade());
medico.setEstado(med.getEstado());
medico.setNascimento(med.getNascimento());
medico.setRG(med.getRG());
medico.setTelefone(med.getTelefone());
medico.setUfCrm(med.getUfCrm());
currentSession.save(medico);
ManagedSessionContext.unbind(sf);
currentSession.flush();
currentSession.getTransaction().commit();
}catch (Exception e){
currentSession.getTransaction().rollback();
e.printStackTrace();
}finally{
currentSession.close();
}
}
public void atualizaMedico (Medico med){
try {
currentSession = sf.openSession();
currentSession.setFlushMode(FlushMode.MANUAL);
ManagedSessionContext.bind(currentSession);
currentSession.beginTransaction();
Medico medico = new Medico();
medico.setId(med.getId());
medico.setNome(med.getNome());
medico.setBairro(med.getBairro());
medico.setCelular(med.getCelular());
medico.setCep(med.getCep());
medico.setCidade(med.getCidade());
medico.setComplemento(med.getComplemento());
medico.setCPF(med.getCPF());
medico.setCRM(med.getCRM());
medico.setEndereco(med.getEndereco());
medico.setEspecialidade(med.getEspecialidade());
medico.setEstado(med.getEstado());
medico.setNascimento(med.getNascimento());
medico.setRG(med.getRG());
medico.setTelefone(med.getTelefone());
medico.setUfCrm(med.getUfCrm());
currentSession.update(medico);
ManagedSessionContext.unbind(sf);
currentSession.flush();
currentSession.getTransaction().commit();
}catch(Exception e) {
currentSession.getTransaction().rollback();
e.printStackTrace();
}finally {
currentSession.close();
}
}
public void removerMedico (Medico med){
try {
currentSession = sf.openSession();
currentSession.setFlushMode(FlushMode.MANUAL);
ManagedSessionContext.bind(currentSession);
currentSession.beginTransaction();
currentSession.delete(med);
ManagedSessionContext.unbind(sf);
currentSession.flush();
currentSession.getTransaction().commit();
}catch(Exception e){
currentSession.getTransaction().rollback();
e.printStackTrace();
}finally{
currentSession.close();
}
}
public List<Medico> getList() {
currentSession = sf.openSession();
currentSession.setFlushMode(FlushMode.MANUAL);
ManagedSessionContext.bind(currentSession);
Criteria cri = currentSession.createCriteria(Medico.class);
this.list = cri.list();
return list;
}
public Integer getRowKey(Medico medico){
return medico.getId();
}
}
MedicoBean
package br.com.pew.controller;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.hibernate.Session;
import org.hibernate.context.spi.CurrentSessionContext;
import org.primefaces.event.RowEditEvent;
import org.primefaces.event.SelectEvent;
import br.com.pew.util.HibernateUtil;
import br.com.pew.dao.MedicoDAO;
import br.com.pew.model.Medico;
@SessionScoped
@ManagedBean
public class MedicoBean {
private Medico medico = new Medico();
private MedicoDAO medicoDao = new MedicoDAO ();
private List<Medico> listarMedico;
private Medico selectMedico = new Medico();
public Medico getMedico(){
return medico;
}
public String Adiconar () {
medicoDao.addMedico(medico);
return "cadMedico";
}
public String Remover (){
medicoDao.removerMedico(medico);
return "cadMedico";
}
public String Atualizar () {
medicoDao.atualizaMedico(selectMedico);
return "cadMedico";
}
public List listaMedico (){
listarMedico = medicoDao.getList();
return listarMedico;
}
public void setSelectMedico(Medico selectMedico){
this.selectMedico = selectMedico;
}
public Medico getSelectMedico () {
return selectMedico;
}
}