无法反序列化 - 休眠弹簧启动

Posted

技术标签:

【中文标题】无法反序列化 - 休眠弹簧启动【英文标题】:could not deserialize - hibernate spring boot 【发布时间】:2016-11-10 03:41:47 【问题描述】:

我正在尝试将数据公开为 REST Web 服务,但是当我运行它时出现:

输出为:

Caused by: org.hibernate.type.SerializationException: could not deserialize
    at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:262) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.internal.util.SerializationHelper.deserialize(SerializationHelper.java:306) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.fromBytes(SerializableTypeDescriptor.java:155) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:137) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:44) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.type.descriptor.sql.BlobTypeDescriptor$1.doExtract(BlobTypeDescriptor.java:65) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:267) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:263) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:338) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2969) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1696) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1628) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.loader.Loader.getRow(Loader.java:1515) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:726) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.loader.Loader.processResultSet(Loader.java:953) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.loader.Loader.doQuery(Loader.java:921) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.loader.Loader.doList(Loader.java:2554) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.loader.Loader.doList(Loader.java:2540) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.loader.Loader.list(Loader.java:2365) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1300) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:573) ~[hibernate-entitymanager-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:449) ~[hibernate-entitymanager-4.3.11.Final.jar:4.3.11.Final]
    at org.hibernate.jpa.criteria.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:67) ~[hibernate-entitymanager-4.3.11.Final.jar:4.3.11.Final]
    at org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:323) ~[spring-data-jpa-1.9.4.RELEASE.jar:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_92]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_92]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_92]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_92]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:483) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:468) ~[spring-data-commons-1.11.4.RELEASE.jar:na]

我正在使用 spring boot 和 spring data rest 并连接到 Oracle 数据库

并使用 NetBeans IDE 8.1、JDK 1.8 和 Tomcat 8.0.27.0

这是我的 aplication.properties

spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
spring.jpa.show-sql=true
#Oracle connection
oracle.username=pass
oracle.password=pass
oracle.url=jdbc:oracle:thin:@182.10.53.43:1521:QABD1

我的实体类

package ec.edu.utpl.gestiondatos.tesis.entities;

import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;
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 Efren
 */
@Entity
@Table(name = "TDI_DOCENTE")
@XmlRootElement
@NamedQueries(
    @NamedQuery(name = "TdiDocente.findAll", query = "SELECT t FROM TdiDocente t"))
public class TdiDocente implements Serializable 

  private static final long serialVersionUID = -8846422129143878578L;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "DO_ID")
    private BigDecimal doId;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 13)
    @Column(name = "DO_IDENTIFICACION")
    private String doIdentificacion;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "DO_APELLIDO_PATERNO")
    private String doApellidoPaterno;
    @Size(max = 100)
    @Column(name = "DO_APELLIDO_MATERNO")
    private String doApellidoMaterno;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "DO_PRIMER_NOMBRE")
    private String doPrimerNombre;
    @Size(max = 100)
    @Column(name = "DO_SEGUNDO_NOMBRE")
    private String doSegundoNombre;
    @Column(name = "DO_FECHA_NACIMIENTO")
    @Temporal(TemporalType.TIMESTAMP)
    private Date doFechaNacimiento;
    @Column(name = "DO_EQU_ID_NSGA")
    private BigInteger doEquIdNsga;
    @Column(name = "DO_EQU_ID_SGA")
    private BigInteger doEquIdSga;
    @Column(name = "DO_EQU_ID_SICA")
    private BigInteger doEquIdSica;
    @Column(name = "DO_EQU_ID_EVA")
    private BigInteger doEquIdEva;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2)
    @Column(name = "DO_GENERO")
    private String doGenero;
    @Basic(optional = false)
    @NotNull
    @Column(name = "DO_FECHA_CREACION")
    @Temporal(TemporalType.TIMESTAMP)
    private Date doFechaCreacion;
    @Column(name = "DO_FECHA_ACTUALIZACION")
    @Temporal(TemporalType.TIMESTAMP)
    private Date doFechaActualizacion;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 1)
    @Column(name = "DO_ACTIVO")
    private String doActivo;
    @Size(max = 120)
    @Column(name = "DO_CORREO_PRI")
    private String doCorreoPri;
    @Size(max = 120)
    @Column(name = "DO_CORREO_SEC")
    private String doCorreoSec;
    @Size(max = 30)
    @Column(name = "DO_TELEFONO_DOM")
    private String doTelefonoDom;
    @Size(max = 30)
    @Column(name = "DO_CELULAR_PRI")
    private String doCelularPri;
    @Size(max = 30)
    @Column(name = "DO_CELULAR_SEC")
    private String doCelularSec;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 1)
    @Column(name = "DO_PROMETEO")
    private String doPrometeo;
    @Column(name = "DO_EQU_ID_CITTES")
    private BigInteger doEquIdCittes;
    @Column(name = "DO_EQU_ID_NSGA2")
    private BigInteger doEquIdNsga2;
    @Size(max = 15)
    @Column(name = "DO_IDENTIFICACION_RRHH")
    private String doIdentificacionRrhh;
    @Size(max = 1)
    @Column(name = "DO_VALIDADO_RRHH")
    private String doValidadoRrhh;
    @Size(max = 20)
    @Column(name = "DO_EXTENSION")
    private String doExtension;
    @Column(name = "DO_TECNICO_DOCENTE")
    private Character doTecnicoDocente;
    @Column(name = "DO_FECHA_INGRESO")
    @Temporal(TemporalType.TIMESTAMP)
    private Date doFechaIngreso;
    @Column(name = "DO_FECHA_SALIDA")
    @Temporal(TemporalType.TIMESTAMP)
    private Date doFechaSalida;
    @Size(max = 50)
    @Column(name = "USUARIO_APEX_CREA")
    private String usuarioApexCrea;
    @Size(max = 50)
    @Column(name = "USUARIO_APEX_ACTUALIZA")
    private String usuarioApexActualiza;
    @Size(max = 80)
    @Column(name = "DO_CORREO_PERSONAL")
    private String doCorreoPersonal;
    @Size(max = 1)
    @Column(name = "DO_ES_ADMINISTRATIVO")
    private String doEsAdministrativo;
    @Column(name = "DO_ID_TIPO_SANGRE")
    private BigInteger doIdTipoSangre;
    @Column(name = "DO_EQU_ID_RR_HH")
    private BigInteger doEquIdRrHh;
    @Size(max = 25)
    @Column(name = "DO_IDENTIFICACION_NOMINA")
    private String doIdentificacionNomina;
    @Size(max = 1)
    @Column(name = "DO_REPETIDO_NSGA")
    private String doRepetidoNsga;
    @Size(max = 100)
    @Column(name = "DO_OBSERVACIONES_REPETIDO")
    private String doObservacionesRepetido;
    @Column(name = "DO_EQUI_ID_NOMINA")
    private BigInteger doEquiIdNomina;
    @Column(name = "DO_EQUI_ID_REGISTRO")
    private BigInteger doEquiIdRegistro;
    @Column(name = "DO_CANTON_NACIMIENTO")
    private BigInteger doCantonNacimiento;
    @Column(name = "DO_PROVINCIA_NACIMIENTO")
    private BigInteger doProvinciaNacimiento;
    @Column(name = "DO_TIPO_DISCAPACIDAD")
    private BigInteger doTipoDiscapacidad;
    @Column(name = "DO_PORCENTAJE_DISCAPACIDAD")
    private BigInteger doPorcentajeDiscapacidad;
    @Size(max = 25)
    @Column(name = "DO_NUMERO_CARNET_CONADIS")
    private String doNumeroCarnetConadis;
    @Size(max = 250)
    @Column(name = "DO_OBSERVACION")
    private String doObservacion;
    @Size(max = 15)
    @Column(name = "DO_IDENTIFICACION_NSGA")
    private String doIdentificacionNsga;
    @Lob
    @Column(name = "DO_FOTO")
    private Serializable doFoto;
    @Size(max = 255)
    @Column(name = "DO_FOTO_MIMETYPE")
    private String doFotoMimetype;
    @Size(max = 255)
    @Column(name = "DO_FOTO_FILENAME")
    private String doFotoFilename;
    @Column(name = "DO_FOTO_LAST_UPDATE")
    @Temporal(TemporalType.TIMESTAMP)
    private Date doFotoLastUpdate;
    @Column(name = "DO_EQU_ID_NSGA3")
    private BigInteger doEquIdNsga3;
    @Column(name = "DO_FECHA_INICIO_ADENDA")
    @Temporal(TemporalType.TIMESTAMP)
    private Date doFechaInicioAdenda;
    @Column(name = "DO_FECHA_FIN_ADENDA")
    @Temporal(TemporalType.TIMESTAMP)
    private Date doFechaFinAdenda;
    @Column(name = "DO_FECHA_VALIDACION_RRHH")
    @Temporal(TemporalType.TIMESTAMP)
    private Date doFechaValidacionRrhh;

    public TdiDocente() 
    

    public TdiDocente(BigDecimal doId) 
        this.doId = doId;
    

    public TdiDocente(BigDecimal doId, String doIdentificacion, String doApellidoPaterno, String doPrimerNombre, String doGenero, Date doFechaCreacion, String doActivo, String doPrometeo) 
        this.doId = doId;
        this.doIdentificacion = doIdentificacion;
        this.doApellidoPaterno = doApellidoPaterno;
        this.doPrimerNombre = doPrimerNombre;
        this.doGenero = doGenero;
        this.doFechaCreacion = doFechaCreacion;
        this.doActivo = doActivo;
        this.doPrometeo = doPrometeo;
    

    public BigDecimal getDoId() 
        return doId;
    

    public void setDoId(BigDecimal doId) 
        this.doId = doId;
    

    public String getDoIdentificacion() 
        return doIdentificacion;
    

    public void setDoIdentificacion(String doIdentificacion) 
        this.doIdentificacion = doIdentificacion;
    

    public String getDoApellidoPaterno() 
        return doApellidoPaterno;
    

    public void setDoApellidoPaterno(String doApellidoPaterno) 
        this.doApellidoPaterno = doApellidoPaterno;
    

    public String getDoApellidoMaterno() 
        return doApellidoMaterno;
    

    public void setDoApellidoMaterno(String doApellidoMaterno) 
        this.doApellidoMaterno = doApellidoMaterno;
    

    public String getDoPrimerNombre() 
        return doPrimerNombre;
    

    public void setDoPrimerNombre(String doPrimerNombre) 
        this.doPrimerNombre = doPrimerNombre;
    

    public String getDoSegundoNombre() 
        return doSegundoNombre;
    

    public void setDoSegundoNombre(String doSegundoNombre) 
        this.doSegundoNombre = doSegundoNombre;
    

    public Date getDoFechaNacimiento() 
        return doFechaNacimiento;
    

    public void setDoFechaNacimiento(Date doFechaNacimiento) 
        this.doFechaNacimiento = doFechaNacimiento;
    

    public BigInteger getDoEquIdNsga() 
        return doEquIdNsga;
    

    public void setDoEquIdNsga(BigInteger doEquIdNsga) 
        this.doEquIdNsga = doEquIdNsga;
    

    public BigInteger getDoEquIdSga() 
        return doEquIdSga;
    

    public void setDoEquIdSga(BigInteger doEquIdSga) 
        this.doEquIdSga = doEquIdSga;
    

    public BigInteger getDoEquIdSica() 
        return doEquIdSica;
    

    public void setDoEquIdSica(BigInteger doEquIdSica) 
        this.doEquIdSica = doEquIdSica;
    

    public BigInteger getDoEquIdEva() 
        return doEquIdEva;
    

    public void setDoEquIdEva(BigInteger doEquIdEva) 
        this.doEquIdEva = doEquIdEva;
    

    public String getDoGenero() 
        return doGenero;
    

    public void setDoGenero(String doGenero) 
        this.doGenero = doGenero;
    

    public Date getDoFechaCreacion() 
        return doFechaCreacion;
    

    public void setDoFechaCreacion(Date doFechaCreacion) 
        this.doFechaCreacion = doFechaCreacion;
    

    public Date getDoFechaActualizacion() 
        return doFechaActualizacion;
    

    public void setDoFechaActualizacion(Date doFechaActualizacion) 
        this.doFechaActualizacion = doFechaActualizacion;
    

    public String getDoActivo() 
        return doActivo;
    

    public void setDoActivo(String doActivo) 
        this.doActivo = doActivo;
    

    public String getDoCorreoPri() 
        return doCorreoPri;
    

    public void setDoCorreoPri(String doCorreoPri) 
        this.doCorreoPri = doCorreoPri;
    

    public String getDoCorreoSec() 
        return doCorreoSec;
    

    public void setDoCorreoSec(String doCorreoSec) 
        this.doCorreoSec = doCorreoSec;
    

    public String getDoTelefonoDom() 
        return doTelefonoDom;
    

    public void setDoTelefonoDom(String doTelefonoDom) 
        this.doTelefonoDom = doTelefonoDom;
    

    public String getDoCelularPri() 
        return doCelularPri;
    

    public void setDoCelularPri(String doCelularPri) 
        this.doCelularPri = doCelularPri;
    

    public String getDoCelularSec() 
        return doCelularSec;
    

    public void setDoCelularSec(String doCelularSec) 
        this.doCelularSec = doCelularSec;
    

    public String getDoPrometeo() 
        return doPrometeo;
    

    public void setDoPrometeo(String doPrometeo) 
        this.doPrometeo = doPrometeo;
    

    public BigInteger getDoEquIdCittes() 
        return doEquIdCittes;
    

    public void setDoEquIdCittes(BigInteger doEquIdCittes) 
        this.doEquIdCittes = doEquIdCittes;
    

    public BigInteger getDoEquIdNsga2() 
        return doEquIdNsga2;
    

    public void setDoEquIdNsga2(BigInteger doEquIdNsga2) 
        this.doEquIdNsga2 = doEquIdNsga2;
    

    public String getDoIdentificacionRrhh() 
        return doIdentificacionRrhh;
    

    public void setDoIdentificacionRrhh(String doIdentificacionRrhh) 
        this.doIdentificacionRrhh = doIdentificacionRrhh;
    

    public String getDoValidadoRrhh() 
        return doValidadoRrhh;
    

    public void setDoValidadoRrhh(String doValidadoRrhh) 
        this.doValidadoRrhh = doValidadoRrhh;
    

    public String getDoExtension() 
        return doExtension;
    

    public void setDoExtension(String doExtension) 
        this.doExtension = doExtension;
    

    public Character getDoTecnicoDocente() 
        return doTecnicoDocente;
    

    public void setDoTecnicoDocente(Character doTecnicoDocente) 
        this.doTecnicoDocente = doTecnicoDocente;
    

    public Date getDoFechaIngreso() 
        return doFechaIngreso;
    

    public void setDoFechaIngreso(Date doFechaIngreso) 
        this.doFechaIngreso = doFechaIngreso;
    

    public Date getDoFechaSalida() 
        return doFechaSalida;
    

    public void setDoFechaSalida(Date doFechaSalida) 
        this.doFechaSalida = doFechaSalida;
    

    public String getUsuarioApexCrea() 
        return usuarioApexCrea;
    

    public void setUsuarioApexCrea(String usuarioApexCrea) 
        this.usuarioApexCrea = usuarioApexCrea;
    

    public String getUsuarioApexActualiza() 
        return usuarioApexActualiza;
    

    public void setUsuarioApexActualiza(String usuarioApexActualiza) 
        this.usuarioApexActualiza = usuarioApexActualiza;
    

    public String getDoCorreoPersonal() 
        return doCorreoPersonal;
    

    public void setDoCorreoPersonal(String doCorreoPersonal) 
        this.doCorreoPersonal = doCorreoPersonal;
    

    public String getDoEsAdministrativo() 
        return doEsAdministrativo;
    

    public void setDoEsAdministrativo(String doEsAdministrativo) 
        this.doEsAdministrativo = doEsAdministrativo;
    

    public BigInteger getDoIdTipoSangre() 
        return doIdTipoSangre;
    

    public void setDoIdTipoSangre(BigInteger doIdTipoSangre) 
        this.doIdTipoSangre = doIdTipoSangre;
    

    public BigInteger getDoEquIdRrHh() 
        return doEquIdRrHh;
    

    public void setDoEquIdRrHh(BigInteger doEquIdRrHh) 
        this.doEquIdRrHh = doEquIdRrHh;
    

    public String getDoIdentificacionNomina() 
        return doIdentificacionNomina;
    

    public void setDoIdentificacionNomina(String doIdentificacionNomina) 
        this.doIdentificacionNomina = doIdentificacionNomina;
    

    public String getDoRepetidoNsga() 
        return doRepetidoNsga;
    

    public void setDoRepetidoNsga(String doRepetidoNsga) 
        this.doRepetidoNsga = doRepetidoNsga;
    

    public String getDoObservacionesRepetido() 
        return doObservacionesRepetido;
    

    public void setDoObservacionesRepetido(String doObservacionesRepetido) 
        this.doObservacionesRepetido = doObservacionesRepetido;
    

    public BigInteger getDoEquiIdNomina() 
        return doEquiIdNomina;
    

    public void setDoEquiIdNomina(BigInteger doEquiIdNomina) 
        this.doEquiIdNomina = doEquiIdNomina;
    

    public BigInteger getDoEquiIdRegistro() 
        return doEquiIdRegistro;
    

    public void setDoEquiIdRegistro(BigInteger doEquiIdRegistro) 
        this.doEquiIdRegistro = doEquiIdRegistro;
    

    public BigInteger getDoCantonNacimiento() 
        return doCantonNacimiento;
    

    public void setDoCantonNacimiento(BigInteger doCantonNacimiento) 
        this.doCantonNacimiento = doCantonNacimiento;
    

    public BigInteger getDoProvinciaNacimiento() 
        return doProvinciaNacimiento;
    

    public void setDoProvinciaNacimiento(BigInteger doProvinciaNacimiento) 
        this.doProvinciaNacimiento = doProvinciaNacimiento;
    

    public BigInteger getDoTipoDiscapacidad() 
        return doTipoDiscapacidad;
    

    public void setDoTipoDiscapacidad(BigInteger doTipoDiscapacidad) 
        this.doTipoDiscapacidad = doTipoDiscapacidad;
    

    public BigInteger getDoPorcentajeDiscapacidad() 
        return doPorcentajeDiscapacidad;
    

    public void setDoPorcentajeDiscapacidad(BigInteger doPorcentajeDiscapacidad) 
        this.doPorcentajeDiscapacidad = doPorcentajeDiscapacidad;
    

    public String getDoNumeroCarnetConadis() 
        return doNumeroCarnetConadis;
    

    public void setDoNumeroCarnetConadis(String doNumeroCarnetConadis) 
        this.doNumeroCarnetConadis = doNumeroCarnetConadis;
    

    public String getDoObservacion() 
        return doObservacion;
    

    public void setDoObservacion(String doObservacion) 
        this.doObservacion = doObservacion;
    

    public String getDoIdentificacionNsga() 
        return doIdentificacionNsga;
    

    public void setDoIdentificacionNsga(String doIdentificacionNsga) 
        this.doIdentificacionNsga = doIdentificacionNsga;
    

    public Serializable getDoFoto() 
        return doFoto;
    

    public void setDoFoto(Serializable doFoto) 
        this.doFoto = doFoto;
    

    public String getDoFotoMimetype() 
        return doFotoMimetype;
    

    public void setDoFotoMimetype(String doFotoMimetype) 
        this.doFotoMimetype = doFotoMimetype;
    

    public String getDoFotoFilename() 
        return doFotoFilename;
    

    public void setDoFotoFilename(String doFotoFilename) 
        this.doFotoFilename = doFotoFilename;
    

    public Date getDoFotoLastUpdate() 
        return doFotoLastUpdate;
    

    public void setDoFotoLastUpdate(Date doFotoLastUpdate) 
        this.doFotoLastUpdate = doFotoLastUpdate;
    

    public BigInteger getDoEquIdNsga3() 
        return doEquIdNsga3;
    

    public void setDoEquIdNsga3(BigInteger doEquIdNsga3) 
        this.doEquIdNsga3 = doEquIdNsga3;
    

    public Date getDoFechaInicioAdenda() 
        return doFechaInicioAdenda;
    

    public void setDoFechaInicioAdenda(Date doFechaInicioAdenda) 
        this.doFechaInicioAdenda = doFechaInicioAdenda;
    

    public Date getDoFechaFinAdenda() 
        return doFechaFinAdenda;
    

    public void setDoFechaFinAdenda(Date doFechaFinAdenda) 
        this.doFechaFinAdenda = doFechaFinAdenda;
    

    public Date getDoFechaValidacionRrhh() 
        return doFechaValidacionRrhh;
    

    public void setDoFechaValidacionRrhh(Date doFechaValidacionRrhh) 
        this.doFechaValidacionRrhh = doFechaValidacionRrhh;
    

    @Override
    public int hashCode() 
        int hash = 0;
        hash += (doId != null ? doId.hashCode() : 0);
        return hash;
    

    @Override
    public boolean equals(Object object) 
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof TdiDocente)) 
            return false;
        
        TdiDocente other = (TdiDocente) object;
        if ((this.doId == null && other.doId != null) || (this.doId != null && !this.doId.equals(other.doId))) 
            return false;
        
        return true;
    

    @Override
    public String toString() 
        return "ec.edu.utpl.gestiondatos.tesis.entities.TdiDocente[ doId=" + doId + " ]";
    


这是我的存储库

package ec.edu.utpl.gestiondatos.tesis.repositories;

import java.util.List;

import ec.edu.utpl.gestiondatos.tesis.entities.TdiDocente;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;

@RepositoryRestResource
public interface TdiDocenteRepository extends CrudRepository<TdiDocente, Long> 

    List<TdiDocente> findBydoIdentificacion(@Param("doIdentificacion") String doIdentificacion);

【问题讨论】:

Efren,请提供您的堆栈跟踪,以查看究竟是什么错误以及来自哪里。 @TurbutAlin 抱歉,我更新了我的帖子 我认为您的堆栈跟踪应该有其他错误。这没有显示实际错误的原因。请留下您的所有堆栈跟踪,其中还应包含调用开始的位置。 【参考方案1】:

您可以尝试使用注释您的控制器

@Transactional

问题可能是 - Jackson 正在尝试序列化延迟加载的字段,然后休眠会话不可用

【讨论】:

但是我没有任何控制器,我只有我的实体和我的存储库,我可以在其中放置@Transactional。 您的网络服务?您访问以查看该错误的 Rest 端点【参考方案2】:

确保您为 Oracle 瘦客户端使用了最新的 OJDBC jar。我遇到了类似的问题,升级到 OJBC 6 解决了它。

【讨论】:

以上是关于无法反序列化 - 休眠弹簧启动的主要内容,如果未能解决你的问题,请参考以下文章

使用休眠 jpa 进行 JSON 序列化和反序列化以在 JSON 响应中将父对象转换为子对象

Spring Jackson反序列化只选择数组的第一项

无法反序列化当前的JSON对象,为啥

反序列化 Json 出现错误“无法反序列化当前 JSON 数组”

在身份验证期间使用 JWT 令牌反序列化 cookie 无法正确反序列化

C# Json反序列化 数据协定类型 无法反序列化 由于未找到必需的数据成员