无法反序列化 - 休眠弹簧启动
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 响应中将父对象转换为子对象
反序列化 Json 出现错误“无法反序列化当前 JSON 数组”