首页 > 解决方案 > 将 mongodb 与 spring 一起使用时发出“Found cycle for field”

问题描述

我正在使用带有spring的mongodb

   <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
   </dependency>

一切正常,直到它打印以下警告的那一刻

2019-08-28 07:10:01.672 INFO 9558 --- [restartedMain] mciMongoPersistentEntityIndexResolver:在路径“monitorSocket -> monitorSocket”的“SocketBase”类型中找到字段“端点”的循环

2019-08-28 07:10:01.672 INFO 9558 --- [restartedMain] mciMongoPersistentEntityIndexResolver:在路径“prev -> prev”的“节点”类型中找到字段“waitStatus”的循环

2019-08-28 07:10:01.672 INFO 9558 --- [restartedMain] mciMongoPersistentEntityIndexResolver:在路径“上一个 -> 下一个 -> 上一个”的“节点”类型中找到字段“waitStatus”的循环

它仍然可以工作,但是在禁用日志之后启动应用程序需要很长时间

logging.level.org.springframework.data.mongodb.core.index=OFF

下面是一些使用的模型的预览

 @Document(collection="Nodes")
 public class Node {
    @Id 
    private String idNode;
    private String name;                
    private List<Microservice> microServices;
   }


   @Document(collection="Applications")
   public class Application {

    @Id                    
    private String name;             
    private List<Node> nodes;

    @ApiModelProperty(hidden = true)
    private List<NodeComponent> nodeComponents = new ArrayList();
    ..
    }

任何建议

标签: mongodbspring-boot

解决方案


只需确保在您的实体中具有一致的类型,在我的情况下,是 ZeroMQ Zcontext造成了问题。
但是,您可以使用@Transient注释来忽略 Mongo 的属性

@Transient
ZContext context;

此致 ;)


推荐阅读