Bom galera, estou tentando excluir um objeto no meu DataTable e não estou conseguindo. Apresenta este Exceção:
org.hibernate.SessionException: Session is closed!
`
<p:accordionPanel>
<p:tab title=“Base de Dados”>
<p:dataTable value="#{consultaAgenda.listAgendamento}"
var=“obj” width=“100%” styleClass="cabecalho2"
rows=“30” paginator=“true” paginatorAlwaysVisible="false"
emptyMessage=“Não existe agendamentos.” id=“tableagenda”>
<f:facet name="header">Lista de Agendamentos</f:facet>
<p:column headerText="Cliente" sortBy="#{obj.nome}">
<div style="text-align: center;">
<p:outputLabel value="#{obj.nome}" styleClass="centro" />
</div>
</p:column>
<p:column headerText="Tel. Celular" width="120" >
<div style="text-align: center;">
<p:outputLabel value="#{obj.telefoneCelular}" styleClass="centro" />
</div>
</p:column>
<p:column headerText="Tel. Residencial">
<div style="text-align: center;">
<p:outputLabel value="#{obj.telefoneResidencial}" styleClass="centro" />
</div>
</p:column>
<p:column headerText="Funcionario" width="10%" sortBy="#{obj.funcionario.funcNome}">
<div style="text-align: center;">
<p:outputLabel value="#{obj.funcionario.funcNome}" styleClass="centro" />
</div>
</p:column>
<p:column headerText="Descrição do Serviço" width="20%">
<div style="text-align: center;">
<h:outputLabel value="#{obj.descricaoServ}" />
</div>
</p:column>
<p:column headerText="Agendado" width="13%" sortBy="#{obj.data}">
<div style="text-align: center">
<componentedataHora:outputData valor="#{obj.data}" styleClass="centro" />
</div>
</p:column>
<p:column headerText="Hora" width="55" sortBy="#{obj.hora}">
<componentedataHora:outputhora hora="#{obj.hora}" styleClass="centro" />
</p:column>
<p:column headerText="Editar" width="50">
<div style="text-align: center;">
<p:button outcome="cadastroagendamento" icon="ui-icon-pencil">
<f:param name="codigo" value="#{obj.id}" />
</p:button>
</div>
</p:column>
<p:column headerText="Excluir" width="50">
<div style="text-align: center;">
<p:commandButton icon="ui-icon-trash" style="text-align:center;" action="#{consultaAgenda.excluir()}" update="@form">
<f:setPropertyActionListener value="#{obj}" target="#{consultaAgenda.agendamentoSelecionado}" /> <!-- Pega Objeto selecionado -->
<p:confirm header="Excluir agendamento" message="Deseja excluir este agendamento?" icon="ui-icon-alert" />
</p:commandButton>
</div>
</p:column>
</p:dataTable>
<p:confirmDialog global="true">
<p:commandButton value="sim" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:button value="não" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</p:tab>
</p:accordionPanel>
</h:form>
</ui:define>
</ui:composition>
/**
* Exclui
*/
@Override
public void excluir(Agendamento agendamento) {
session.delete(agendamento);
}
`
` public void excluir(Agendamento agendamento) throws RegraNegocioException {
try {
agendamentos.excluir(agendamento);
} catch (Exception e) {
e.printStackTrace();
throw new RegraNegocioException("Agendamento não pode ser Excluido");
}}
`
Erro
org.hibernate.SessionException: Session is closed! at org.hibernate.internal.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:130) at org.hibernate.internal.SessionImpl.fireDelete(SessionImpl.java:915) at org.hibernate.internal.SessionImpl.delete(SessionImpl.java:855) at repository.DAO.AgendametoDAO.excluir(AgendametoDAO.java:57) at service.GestaoAgendamentos.excluir(GestaoAgendamentos.java:66) at view.ConsultaAgenda.excluir(ConsultaAgenda.java:64) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.el.parser.AstValue.invoke(AstValue.java:247) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)