Hibernate Spring数据JPA自引用实体

Hibernate Spring数据JPA自引用实体,hibernate,spring-boot,spring-data-jpa,spring-data,Hibernate,Spring Boot,Spring Data Jpa,Spring Data,我有一个自我关系实体的问题 我已经按照以下步骤配置了我的实体 @实体 @表(name=“SERVICIO”) @诺尔格构装师 @资料 公共类服务扩展AuditableEntity实现可序列化{ @身份证 @GeneratedValue(策略=GenerationType.AUTO,generator=“我的序列服务任务”) @SequenceGenerator(name=“my_seq_servicioedesk”,sequenceName=“servicioedesk_seq”) @列(nam

我有一个自我关系实体的问题

我已经按照以下步骤配置了我的实体

@实体
@表(name=“SERVICIO”)
@诺尔格构装师
@资料
公共类服务扩展AuditableEntity实现可序列化{
@身份证
@GeneratedValue(策略=GenerationType.AUTO,generator=“我的序列服务任务”)
@SequenceGenerator(name=“my_seq_servicioedesk”,sequenceName=“servicioedesk_seq”)
@列(name=“ID\u SERVICIO”)
私有整数idservice;
@manytone(cascade={CascadeType.ALL})
@JoinColumn(name=“SERVICIO\u PADRE”,referencedColumnName=“ID\u SERVICIO”)
私人服务;
@OneToMany(mappedBy=“servicioPadre”,fetch=FetchType.EAGER)
私人套餐服务;
我阅读了很长一段时间,发现了类似的问题,并使用与我类似的配置解决了这些问题:

但是,当我尝试从数据库中检索元素时,总是出现Stackoverflow错误:

    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@2d4a3e13<rs=oracle.jdbc.driver.ForwardOnlyResultSet@1b37fbec>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@4a22e4d7<rs=oracle.jdbc.driver.ForwardOnlyResultSet@3c54ddec>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@d8835af<rs=oracle.jdbc.driver.ForwardOnlyResultSet@7b9088f2>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@16681017<rs=oracle.jdbc.driver.ForwardOnlyResultSet@73a6cc79>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@6aae0e6f<rs=oracle.jdbc.driver.ForwardOnlyResultSet@183fc2fa>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@37775bb1<rs=oracle.jdbc.driver.ForwardOnlyResultSet@6a567f7b>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@7b9e25bd<rs=oracle.jdbc.driver.ForwardOnlyResultSet@6a2d867d>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@2d206a71<rs=oracle.jdbc.driver.ForwardOnlyResultSet@66f5b8fe>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@37e7c4cc<rs=oracle.jdbc.driver.ForwardOnlyResultSet@bb3ecfe>
    [ERROR] 2019-05-14 09:49:31.425 [] TransactionInterceptor - Application exception overridden by rollback exception
    java.lang.StackOverflowError
        at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:776) ~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
        at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897) ~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034) ~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820) ~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
        at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867) ~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
        at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502) ~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
        at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.getResultSet(AbstractLoadPlanBasedLoader.java:449) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeQueryStatement(AbstractLoadPlanBasedLoader.java:202) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:137) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:102) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.loader.collection.plan.AbstractLoadPlanBasedCollectionInitializer.initialize(AbstractLoadPlanBasedCollectionInitializer.java:100) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:693) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:92) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:1933) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.collection.internal.AbstractPersistentCollection$4.doWork(AbstractPersistentCollection.java:559) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:261) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:555) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:143) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.collection.internal.PersistentSet.hashCode(PersistentSet.java:447) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at com.*.*.entidad.ServicioEdesk.hashCode(ServicioEdesk.java:21) ~[classes/:?]
        at com.*.*.entidad.ServicioEdesk.hashCode(ServicioEdesk.java:21) ~[classes/:?]
        at java.util.HashMap.hash(HashMap.java:338) ~[?:1.8.0_144]
        at java.util.HashMap.put(HashMap.java:611) ~[?:1.8.0_144]
        at java.util.HashSet.add(HashSet.java:219) ~[?:1.8.0_144]
[WARN]2019-05-14 09:49:31.423[]加载上下文-hh000100:故障安全清理(集合):org.hibernate.engine.loading.internal。CollectionLoadContext@2d4a3e13
[警告]2019-05-14 09:49:31.423[]加载上下文-hh000100:故障安全清理(集合):org.hibernate.engine.loading.internal。CollectionLoadContext@4a22e4d7
[警告]2019-05-14 09:49:31.423[]加载上下文-hh000100:故障安全清理(集合):org.hibernate.engine.loading.internal。CollectionLoadContext@d8835af
[警告]2019-05-14 09:49:31.423[]加载上下文-hh000100:故障安全清理(集合):org.hibernate.engine.loading.internal。CollectionLoadContext@16681017
[警告]2019-05-14 09:49:31.423[]加载上下文-hh000100:故障安全清理(集合):org.hibernate.engine.loading.internal。CollectionLoadContext@6aae0e6f
[警告]2019-05-14 09:49:31.423[]加载上下文-hh000100:故障安全清理(集合):org.hibernate.engine.loading.internal。CollectionLoadContext@37775bb1
[警告]2019-05-14 09:49:31.423[]加载上下文-hh000100:故障安全清理(集合):org.hibernate.engine.loading.internal。CollectionLoadContext@7b9e25bd
[警告]2019-05-14 09:49:31.423[]加载上下文-hh000100:故障安全清理(集合):org.hibernate.engine.loading.internal。CollectionLoadContext@2d206a71
[警告]2019-05-14 09:49:31.423[]加载上下文-hh000100:故障安全清理(集合):org.hibernate.engine.loading.internal。CollectionLoadContext@37e7c4cc
[错误]2019-05-14 09:49:31.425[]TransactionInterceptor-应用程序异常被回滚异常覆盖
栈溢出
在oracle.jdbc.driver.T4CPreparedStatement.executeForedScribe(T4CPreparedStatement.java:776)~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
在oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897)~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
在oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034)~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
在oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820)~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
在oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867)~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
在oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502)~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
在org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.getResultSet(AbstractLoadPlanBasedLoader.java:449)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeQueryStatement(AbstractLoadPlanBasedLoader.java:202)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:137)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:102)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.loader.collection.plan.AbstractLoadPlanBasedCollectionInitializer.initialize(AbstractLoadPlanBasedCollectionInitializer.java:100)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:693)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:92)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:1933)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.collection.internal.AbstractPersistentCollection$4.doWork(AbstractPersistentCollection.java:559)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.collection.internal.AbstractPersistentCollection.WithTemporarySessionIneed(AbstractPersistentCollection.java:261)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:555)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:143)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在org.hibernate.collection.internal.PersistentSet.hashCode(PersistentSet.java:447)~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
在com.*.entidad.Servic
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@2d4a3e13<rs=oracle.jdbc.driver.ForwardOnlyResultSet@1b37fbec>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@4a22e4d7<rs=oracle.jdbc.driver.ForwardOnlyResultSet@3c54ddec>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@d8835af<rs=oracle.jdbc.driver.ForwardOnlyResultSet@7b9088f2>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@16681017<rs=oracle.jdbc.driver.ForwardOnlyResultSet@73a6cc79>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@6aae0e6f<rs=oracle.jdbc.driver.ForwardOnlyResultSet@183fc2fa>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@37775bb1<rs=oracle.jdbc.driver.ForwardOnlyResultSet@6a567f7b>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@7b9e25bd<rs=oracle.jdbc.driver.ForwardOnlyResultSet@6a2d867d>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@2d206a71<rs=oracle.jdbc.driver.ForwardOnlyResultSet@66f5b8fe>
    [WARN ] 2019-05-14 09:49:31.423 [] LoadContexts - HHH000100: Fail-safe cleanup (collections) : org.hibernate.engine.loading.internal.CollectionLoadContext@37e7c4cc<rs=oracle.jdbc.driver.ForwardOnlyResultSet@bb3ecfe>
    [ERROR] 2019-05-14 09:49:31.425 [] TransactionInterceptor - Application exception overridden by rollback exception
    java.lang.StackOverflowError
        at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:776) ~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
        at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897) ~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034) ~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820) ~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
        at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867) ~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
        at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502) ~[ojdbc7-11.2.0.2.0.jar:12.1.0.1.0]
        at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.getResultSet(AbstractLoadPlanBasedLoader.java:449) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeQueryStatement(AbstractLoadPlanBasedLoader.java:202) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:137) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:102) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.loader.collection.plan.AbstractLoadPlanBasedCollectionInitializer.initialize(AbstractLoadPlanBasedCollectionInitializer.java:100) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:693) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:92) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:1933) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.collection.internal.AbstractPersistentCollection$4.doWork(AbstractPersistentCollection.java:559) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:261) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:555) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:143) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at org.hibernate.collection.internal.PersistentSet.hashCode(PersistentSet.java:447) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]
        at com.*.*.entidad.ServicioEdesk.hashCode(ServicioEdesk.java:21) ~[classes/:?]
        at com.*.*.entidad.ServicioEdesk.hashCode(ServicioEdesk.java:21) ~[classes/:?]
        at java.util.HashMap.hash(HashMap.java:338) ~[?:1.8.0_144]
        at java.util.HashMap.put(HashMap.java:611) ~[?:1.8.0_144]
        at java.util.HashSet.add(HashSet.java:219) ~[?:1.8.0_144]
@Entity
@Table(name = "SERVICIO")
@NoArgsConstructor
@Data
@EqualsAndHashCode(of = {"idServicio", "nombreServicio", "palabrasClave"})
public class Servicio extends AuditableEntity implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "my_seq_servicioedesk")
    @SequenceGenerator(name = "my_seq_servicioedesk", sequenceName = "SERVICIOEDESK_SEQ")
    @Column(name = "ID_SERVICIO")
    private Integer idServicio;

    @ManyToOne(cascade = {CascadeType.ALL})
    @JoinColumn(name = "SERVICIO_PADRE", referencedColumnName = "ID_SERVICIO")
    private Servicio servicioPadre;

    @OneToMany(mappedBy = "servicioPadre",fetch = FetchType.EAGER)
    private Set<Servicio> serviciosHijos;