Hibernate 带休眠的堆栈溢出错误
当我尝试与Hibernate 带休眠的堆栈溢出错误,hibernate,jpa,stack-overflow,Hibernate,Jpa,Stack Overflow,当我尝试与EntityManager合并时,我得到一个堆栈溢出错误。很抱歉,我只发布了stacktrace和我试图持久化的实体,但我对此不是很有经验,请评论一下您可能需要查看的代码 在此链接中,您将发现异常(对于帖子来说太长):。重复部分如下: ... at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887) at org.hibernate.event.in
EntityManager
合并时,我得到一个堆栈溢出错误。很抱歉,我只发布了stacktrace和我试图持久化的实体,但我对此不是很有经验,请评论一下您可能需要查看的代码
在此链接中,您将发现异常(对于帖子来说太长):。重复部分如下:
...
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:458)
at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:427)
at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:204)
at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:148)
at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1078)
at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1005)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:651)
at org.hibernate.type.EntityType.resolve(EntityType.java:471)
at org.hibernate.type.ComponentType.resolve(ComponentType.java:666)
at org.hibernate.loader.Loader.extractKeysFromResultSet(Loader.java:828)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:707)
at org.hibernate.loader.Loader.processResultSet(Loader.java:940)
at org.hibernate.loader.Loader.doQuery(Loader.java:910)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:311)
at org.hibernate.loader.Loader.loadEntity(Loader.java:2111)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3887)
...
以下是实体:
@Entity
@Table(name = "transaccional.auditoria")
public class Auditoria {
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="transaccional.auditoria_id_seq")
@SequenceGenerator(name="transaccional.auditoria_id_seq", sequenceName="transaccional.auditoria_id_seq")
@Column(name = "id")
private Integer id;
@OneToOne
@JoinColumn(name="atencion_id",referencedColumnName="id")
private Atencion atencion;
@OneToOne
@JoinColumn(name="prescripcion_id",referencedColumnName="id")
private Prescripcion prescripcion;
@OneToOne
@JoinColumn(name="prestador_id",referencedColumnName="id")
private Prestador prestador;
@OneToOne
@JoinColumn(name="tipo_transaccion_id",referencedColumnName="id")
private TipoTransaccion tipoTransaccion;
@OneToOne
@JoinColumn(name="nomenclador_practica_id",referencedColumnName="id")
private PracticaNomenclada nomencladorPractica;
@OneToOne
@JoinColumn(name="auditor_actual_id",referencedColumnName="id")
private Auditor auditorActual;
@Column(name = "auditor_revision")
private String auditorRevision;
@OneToOne
@JoinColumn(name="estado_auditoria_id",referencedColumnName="id")
private EstadoAuditoria estadoAuditoria;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "fecha_final")
private Date fechaFinal;
@Column(name = "cantidad_items")
private Integer cantidadItems;
@Column(name = "en_revision")
private Boolean enRevision;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "fecha_comienzo_revision")
private Date fechaComienzoRevision;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="ultimo_auditoria_detalle_id",referencedColumnName="id")
private AuditoriaDetalle ultimoAuditoriaDetalle;
@Column(name = "es_anulado")
private Boolean esAnulado;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="fecha_insert")
private Date fechaInsert;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="fecha_delete")
private Date fechaDelete;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="fecha_update")
private Date fechaUpdate;
@Column(name="version")
private int version;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="fecha_auditoria")
private Date fechaAuditoria;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="motivo_auditoria_id",referencedColumnName="id")
private MotivoAuditoria motivoAuditoria;
@Column
private String autorizacion;
@Column
private String origen;
@Column(name="nro_autorizacion")
private String nroAutorizacion;
以下是发生这种情况的服务:
@Transactional
@Override
public void update(Auditoria auditoria) {
entityManager.merge(auditoria);
}
如果您提供引起此错误的代码部分,那就太好了。您是否已重写实体的equals方法,如果是,此方法是什么样子的?@luigimendoza我已更新代码。@JamesB我尚未重写equals方法。该链接已断开。