estou tendando excluir um objeto no meu dataTable e estou come esse erro.
MeuModel
package com.irmaosuspension.controleservico.modelo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotBlank;
import com.irmaosuspension.controleservico.enumeration.Categoria;
@Entity
@Table(name="modelo_carro")
public class ModeloCarro {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long codigo;
@NotNull
@NotBlank
@Size(max= 20,min = 2)
@Column(nullable = false, length=20)
private String nome;
@Enumerated(EnumType.STRING)
private Categoria categoria;
@ManyToOne
@JoinColumn(name = "codigo_fabricante")
private Fabricante fabricante;
public Long getCodigo() {
return codigo;
}
public void setCodigo(Long codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Fabricante getFabricante() {
return fabricante;
}
public void setFabricante(Fabricante fabricante) {
this.fabricante = fabricante;
}
public Categoria getCategoria() {
return categoria;
}
public void setCategoria(Categoria categoria) {
this.categoria = categoria;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ModeloCarro other = (ModeloCarro) obj;
if (codigo == null) {
if (other.codigo != null)
return false;
} else if (!codigo.equals(other.codigo))
return false;
return true;
}
}
Meu xhtml
<ui:composition template="/WEB-INF/template/layoutPadrao.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<f:metadata>
<f:viewAction action="#{consultaModeloCarro.inicializa}" />
</f:metadata>
<ui:define name="titulo">Pesquisa modelo de carro</ui:define>
<ui:define name="corpo">
<h1>Pesquisa modelo de carro</h1>
<h:form id="frmPesquisa">
<p:messages id="messages" autoUpdate="true" closable="true" />
<p:toolbar style="margin-top: 20px">
<p:toolbarGroup>
<p:button value="Novo" outcome="pesquisaModeloCarro" />
</p:toolbarGroup>
</p:toolbar>
<p:dataTable id="modelosCarroTable" style="margin-top: 20px"
value="#{consultaModeloCarro.modeloCarros}" var="modelocarros"
emptyMessage="Nenhum modelo de carro foi encontrado." rows="20"
paginator="true" paginatorAlwaysVisible="false" paginatorPosition="bottom">
<p:column headerText="Código" style="text-align: center; width: 100px">
<h:outputText value="#{modelocarros.codigo}"/>
</p:column>
<p:column headerText="Modelo do Veículo" style="width: 200px; text-align:center">
<h:outputText value="#{modelocarros.nome}" />
</p:column>
<p:column headerText="Fabricante" style="width: 200px; text-align:center">
<h:outputText value="#{modelocarros.fabricante.nome}" />
</p:column>
<p:column headerText="Categoria" style="width: 200px; text-align:center">
<h:outputText value="#{modelocarros.categoria.descricao}" />
</p:column>
<p:column headerText="Editar / Excluir" style="width: 150px; text-align: center">
<p:button outcome="cadastroModeloCarro" icon="ui-icon-pencil" title="Editar">
<f:param name="modelocarros" value="#{modelocarros.codigo}" />
</p:button>
-
<p:commandButton icon="ui-icon-trash" title="Excluir" oncomplete="PF('confirmacaoExclusao').show()"
process="@this" update=":frmPesquisa:confirmacaoExclusaoDialog">
<f:setPropertyActionListener value="#{modelocarros}" target="#{consultaModeloCarro.modeloCarroSelecionado}" />
</p:commandButton>
</p:column>
</p:dataTable>
<p:confirmDialog id="confirmacaoExclusaoDialog" widgetVar="confirmacaoExclusao"
message="Tem certeza que deseja excluir o modelo #{consultaModeloCarro.modeloCarroSelecionado.nome}?"
header="Exclusão de modelo de carro" severity="alert">
<p:button value="Não" onclick="PF('confirmacaoExclusao').hide(); return false;" />
<p:commandButton value="Sim" action="#{consultaModeloCarro.excluir}" update=":frmPesquisa:modelosCarroTable" oncomplete="PF('confirmacaoExclusao').hide()" />
</p:confirmDialog>
</h:form>
</ui:define>
</ui:composition>
Bean
package com.irmaosuspension.controleservico.controller;
import java.io.Serializable;
import java.util.List;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.omnifaces.util.Messages;
import com.irmaosuspension.controleservico.modelo.Carro;
import com.irmaosuspension.controleservico.service.CarroService;
import com.irmaosuspension.controleservico.util.NegocioException;
@Named
@ViewScoped
public class ConsultaCarroBean implements Serializable {
private static final long serialVersionUID = 1L;
@Inject
private CarroService serviceCarro;
private Carro carroselecionado;
private List<Carro> carros;
public void inicializa() {
carros = serviceCarro.buscarTodos();
}
public void excluir(){
try {
serviceCarro.excluir(carroselecionado);
carros.remove(carroselecionado);
Messages.addGlobalInfo("Carro excluído com sucesso.");
} catch (NegocioException e) {
Messages.addGlobalError(e.getMessage());
}
}
public List<Carro> getCarros() {
return carros;
}
public Carro getCarroselecionado() {
return carroselecionado;
}
public void setCarroselecionado(Carro carroselecionado) {
this.carroselecionado = carroselecionado;
}
}
ADVERTÊNCIA: /modeloCarro/pesquisaModeloCarro.xhtml @47,117 target="#{consultaModeloCarro.modeloCarroSelecionado}": Property 'modeloCarroSelecionado' not writable on type com.irmaosuspension.controleservico.controller.ConsultaModeloCarro javax.el.PropertyNotWritableException: /modeloCarro/pesquisaModeloCarro.xhtml @47,117 target="#{consultaModeloCarro.modeloCarroSelecionado}": Property 'modeloCarroSelecionado' not writable on type com.irmaosuspension.controleservico.controller.ConsultaModeloCarro at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:136) at com.sun.faces.facelets.tag.jsf.core.SetPropertyActionListenerHandler$SetPropertyListener.processAction(SetPropertyActionListenerHandler.java:211) at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88) at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:814) at javax.faces.component.UICommand.broadcast(UICommand.java:300) at javax.faces.component.UIData.broadcast(UIData.java:1108) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:495) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:767) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1347) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: javax.el.PropertyNotWritableException: Property 'modeloCarroSelecionado' not writable on type com.irmaosuspension.controleservico.controller.ConsultaModeloCarro at javax.el.BeanELResolver$BeanProperty.write(BeanELResolver.java:314) at javax.el.BeanELResolver$BeanProperty.access$100(BeanELResolver.java:274) at javax.el.BeanELResolver.setValue(BeanELResolver.java:120) at com.sun.faces.el.DemuxCompositeELResolver._setValue(DemuxCompositeELResolver.java:255) at com.sun.faces.el.DemuxCompositeELResolver.setValue(DemuxCompositeELResolver.java:281) at org.apache.el.parser.AstValue.setValue(AstValue.java:202) at org.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:257) at org.jboss.weld.el.WeldValueExpression.setValue(WeldValueExpression.java:64) at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:131) ... 33 more
mar 14, 2017 10:07:07 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError GRAVE: javax.el.PropertyNotWritableException: /modeloCarro/pesquisaModeloCarro.xhtml @47,117 target="#{consultaModeloCarro.modeloCarroSelecionado}": Property 'modeloCarroSelecionado' not writable on type com.irmaosuspension.controleservico.controller.ConsultaModeloCarro at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:136) at com.sun.faces.facelets.tag.jsf.core.SetPropertyActionListenerHandler$SetPropertyListener.processAction(SetPropertyActionListenerHandler.java:211) at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88) at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:814) at javax.faces.component.UICommand.broadcast(UICommand.java:300) at javax.faces.component.UIData.broadcast(UIData.java:1108) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:495) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:767) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1347) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: javax.el.PropertyNotWritableException: Property 'modeloCarroSelecionado' not writable on type com.irmaosuspension.controleservico.controller.ConsultaModeloCarro at javax.el.BeanELResolver$BeanProperty.write(BeanELResolver.java:314) at javax.el.BeanELResolver$BeanProperty.access$100(BeanELResolver.java:274) at javax.el.BeanELResolver.setValue(BeanELResolver.java:120) at com.sun.faces.el.DemuxCompositeELResolver._setValue(DemuxCompositeELResolver.java:255) at com.sun.faces.el.DemuxCompositeELResolver.setValue(DemuxCompositeELResolver.java:281) at org.apache.el.parser.AstValue.setValue(AstValue.java:202) at org.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:257) at org.jboss.weld.el.WeldValueExpression.setValue(WeldValueExpression.java:64) at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:131) ... 33 more