0

我想在我的数据库中保存数据表的更改,但出现异常:java.lang.String cannot be cast to jpa.TcamposEncuesta。我不明白。这是我的 ManagedBean 的一部分,它扩展了 TcamposEncuesta 类。

public void onEditRow(RowEditEvent event){
    try {    
        TcamposEncuesta tobj = (TcamposEncuesta)event.getObject();
        this.setIdcamposEncuesta(tobj.getIdcamposEncuesta());
        this.setNombre(((TcamposEncuesta) event.getObject()).getNombre());
        this.setAmplitud(((TcamposEncuesta) event.getObject()).getAmplitud());
        Properties pr = this.actualizarInsertar();
        String id = pr.getProperty("ID");
        addMessage("Ha modificado a: " + id);
    } catch(Exception e){
        addMessage(row+ "Error: " + e.getMessage());
    }
}

通过任何测试,我都发现了我拥有的两种类型的转换错误。

这是我的 .xhtml,我在 datascroller 中放置了一个数据表,这很有效。

 <h:form id="form">
        <p:growl id="msgs" showDetail="true"/>
        <p:dataScroller id="idScroller" value="#{mbCamposEncuesta.listCamp}" var="campoEnc" chunkSize="2">
            <!-- <f:facet name="header">
                Scroll para cargar más elementos
            </f:facet> -->
            <f:facet name="loader">          
                <p:commandButton type="button" value="Cargar más" icon="fa fa-angle-double-down" />
            </f:facet> 
            <p:dataTable id="idDataTable" editable="true" value="campoEnc" styleClass="dTable">
                <p:ajax event="rowEdit" listener="#{mbCamposEncuesta.onEditRow}" update=":form:msgs"/>
                    <!-- <p:ajax event="rowEditCancel"   /> -->

                    <p:column>
                    <p:cellEditor>
                        <f:facet name="output" ><h:outputText value="#{campoEnc.idcamposEncuesta}" /></f:facet>
                        <f:facet name="input" ><p:inputText value="#{campoEnc.idcamposEncuesta}" disabled="true" /></f:facet> 
                    </p:cellEditor> 
                    </p:column>

                    <p:column>
                    <p:cellEditor >
                        <f:facet name="output" ><h:outputText value="#{campoEnc.nombre}" /></f:facet>
                        <f:facet name="input" ><p:inputText value="#{campoEnc.nombre}" /></f:facet>
                    </p:cellEditor>
                    </p:column>

                    <p:column>
                    <p:cellEditor>
                        <f:facet name="output"><h:outputLabel value="#{campoEnc.amplitud}" /></f:facet>
                        <f:facet name="input"><p:inputNumber value="#{campoEnc.amplitud}" /></f:facet>
                    </p:cellEditor>
                    </p:column>

                    <p:column>
                    <p:cellEditor>
                        <f:facet name="output" ><h:outputText value="#{campoEnc.script}" /></f:facet>
                        <f:facet name="input" ><p:inputText value="#{campoEnc.script}" disabled="true" /></f:facet> 
                    </p:cellEditor> 
                    </p:column>

                    <p:column>
                    <p:cellEditor >
                        <f:facet name="output" ><h:outputText value="#{campoEnc.tipoCampo}" /></f:facet>
                        <f:facet name="input" ><p:inputText value="#{campoEnc.tipoCampo}" /></f:facet>
                    </p:cellEditor>
                    </p:column>

                    <p:column>
                    <p:cellEditor>
                        <f:facet name="output"><h:outputLabel value="#{campoEnc.idlista}" /></f:facet>
                        <f:facet name="input"><p:inputNumber value="#{campoEnc.idlista}" /></f:facet>
                    </p:cellEditor>
                    </p:column>

                    <p:column style="width:32px">
                        <p:rowEditor />
                    </p:column>
                </p:dataTable>
        </p:dataScroller>
    </h:form>

堆栈:

java.lang.ClassCastException: java.lang.String cannot be cast to jpa.TcamposEncuesta
at com.beans.jsfprograma.MbCamposEncuesta.onEditRow(MbCamposEncuesta.java:100)
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)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at org.primefaces.behavior.ajax.AjaxBehaviorListenerImpl.processArgListener(AjaxBehaviorListenerImpl.java:79)
at org.primefaces.behavior.ajax.AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxBehaviorListenerImpl.java:63)
at org.primefaces.event.AbstractAjaxBehaviorEvent.processListener(AbstractAjaxBehaviorEvent.java:38)
at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:106)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:804)
at javax.faces.component.UIData.broadcast(UIData.java:1086)
at javax.faces.component.UIData.broadcast(UIData.java:1108)
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:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
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)

堆栈:java.lang.ClassCastException:java.lang.String 无法在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 的 com.beans.jsfprograma.MbCamposEncuesta.onEditRow(MbCamposEncuesta.java:100) 处转换​​为 jpa.TcamposEncuesta 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) at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java :105) 在 org.primefaces.behavior.ajax 的 org.primefaces.behavior.ajax.AjaxBehaviorListenerImpl.processArgListener(AjaxBehaviorListenerImpl.java:79)。AjaxBehaviorListenerImpl.processAjaxBehavior(AjaxBehaviorListenerImpl.java:63) at org.primefaces.event.AbstractAjaxBehaviorEvent.processListener(AbstractAjaxBehaviorEvent.java:38) at javax.faces.component.behavior.BehaviorBase.broadcast(BehaviorBase.java:106) at javax.faces .component.UIComponentBase.broadcast(UIComponentBase.java:804) 在 javax.faces.component.UIData.broadcast(UIData.java:1086) 在 javax.faces.component.UIData.broadcast(UIData.java:1108) 在 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) 在 com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 在 com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 在 javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:291) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 在 org. org.netbeans.modules.web.monitor.server.MonitorFilter 中的 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 中的 apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)。 doFilter(MonitorFilter.java:393) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 在 org.apache.catalina。core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) 在 org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache。 catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) 在 org.apache.coyote.http11.AbstractHttp11Processor。org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673) 在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) 的进程(AbstractHttp11Processor.java:1091)在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 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)1500) 在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 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)1500) 在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 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)

这是我的对象:

package jpa;

import java.io.Serializable;
import java.util.Date;
import java.util.Properties;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author Miguel Morales
 */
@Entity
@Table(name = "TCAMPOS_ENCUESTA", catalog = "", schema = "")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "TcamposEncuesta.findAll", query = "SELECT t FROM TcamposEncuesta t"),
    @NamedQuery(name = "TcamposEncuesta.findByIdcamposEncuesta", query = "SELECT t FROM TcamposEncuesta t WHERE t.idcamposEncuesta = :idcamposEncuesta"),
    @NamedQuery(name = "TcamposEncuesta.findByNombre", query = "SELECT t FROM TcamposEncuesta t WHERE t.nombre = :nombre"),
    @NamedQuery(name = "TcamposEncuesta.findByTipoCampo", query = "SELECT t FROM TcamposEncuesta t WHERE t.tipoCampo = :tipoCampo"),
    @NamedQuery(name = "TcamposEncuesta.findByAmplitud", query = "SELECT t FROM TcamposEncuesta t WHERE t.amplitud = :amplitud"),
    @NamedQuery(name = "TcamposEncuesta.findByIdlista", query = "SELECT t FROM TcamposEncuesta t WHERE t.idlista = :idlista"),
    @NamedQuery(name = "TcamposEncuesta.findByFechaCreacion", query = "SELECT t FROM TcamposEncuesta t WHERE t.fechaCreacion = :fechaCreacion")})
public class TcamposEncuesta extends Statement implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "IDCAMPOS_ENCUESTA", nullable = false)
    private Integer idcamposEncuesta = 0;
    @Size(max = 10)
    @Column(name = "NOMBRE", length = 10)
    private String nombre;
    @Lob
    @Size(max = 2147483647)
    @Column(name = "SCRIPT", length = 2147483647)
    private String script;
    @Size(max = 1)
    @Column(name = "TIPO_CAMPO", length = 1)
    private String tipoCampo;
    @Column(name = "AMPLITUD")
    private Integer amplitud;
    @Column(name = "IDLISTA")
    private Integer idlista;
    @Basic(optional = false)
    @NotNull
    @Column(name = "FECHA_CREACION", nullable = true)
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaCreacion;


    public TcamposEncuesta() {
    }

    public TcamposEncuesta(Integer idcamposEncuesta) {
        this.idcamposEncuesta = idcamposEncuesta;
    }

    public TcamposEncuesta(Integer idcamposEncuesta, Date fechaCreacion) {
        this.idcamposEncuesta = idcamposEncuesta;
        this.fechaCreacion = fechaCreacion;
    }

    public Integer getIdcamposEncuesta() {
        return idcamposEncuesta;
    }

    public void setIdcamposEncuesta(Integer idcamposEncuesta) {
        this.idcamposEncuesta = idcamposEncuesta;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getScript() {
        return script;
    }

    public void setScript(String script) {
        this.script = script;
    }

    public String getTipoCampo() {
        return tipoCampo;
    }

    public void setTipoCampo(String tipoCampo) {
        this.tipoCampo = tipoCampo;
    }

    public Integer getAmplitud() {
        return amplitud;
    }

    public void setAmplitud(Integer amplitud) {
        this.amplitud = amplitud;
    }

    public Integer getIdlista() {
        return idlista;
    }

    public void setIdlista(Integer idlista) {
        this.idlista = idlista;
    }

    public Date getFechaCreacion() {
        return fechaCreacion;
    }

    public void setFechaCreacion(Date fechaCreacion) {
        this.fechaCreacion = fechaCreacion;
    }
}
4

0 回答 0