Java MongoDB-Spring-保存对象会导致StackOverflower错误

Java MongoDB-Spring-保存对象会导致StackOverflower错误,java,spring,mongodb,spring-mvc,Java,Spring,Mongodb,Spring Mvc,我们的架构将Spring与MongoDB相结合。我们通常在保存/编辑和读取自定义对象方面没有任何问题。最近,我们进行了一些修改,开始出现以下错误 java.lang.StackOverflowError at java.util.Collections.emptyList(Collections.java:2959) at org.springframework.data.util.TypeDiscoverer.getTypeArguments(TypeDiscoverer.jav

我们的架构将Spring与MongoDB相结合。我们通常在保存/编辑和读取自定义对象方面没有任何问题。最近,我们进行了一些修改,开始出现以下错误

       java.lang.StackOverflowError
at java.util.Collections.emptyList(Collections.java:2959)
at org.springframework.data.util.TypeDiscoverer.getTypeArguments(TypeDiscoverer.java:442)
at org.springframework.data.util.ClassTypeInformation.getTypeArguments(ClassTypeInformation.java:40)
at org.springframework.data.util.TypeDiscoverer.getActualType(TypeDiscoverer.java:288)
at org.springframework.data.util.ClassTypeInformation.getActualType(ClassTypeInformation.java:40)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.addCustomTypeKeyIfNecessary(MappingMongoConverter.java:650)

在我添加所有结合了我们架构的主要类之前,我想知道
你们中有人以前遇到过此类异常吗?

显然,我无法将记录器添加到我的数据对象中

当我移除记录器时,它又开始工作了

protected final Log logger = LogFactory.getLog(getClass());
在MongoDB的数据对象中使用记录器时要小心

似乎使用@Transient应该向MongoDB驱动程序发出信号,不要持久化记录器变量


哇,很高兴你能想到这一点。将logger声明为private有帮助吗?将其标记为static(首选)或transient(因为,为什么不?),您应该可以。你真的不希望每个实例都有一个记录器。我必须检查一下,我们使用的MongoDB驱动程序还不是很成熟,当我意识到它试图持久化一个最终的记录器变量时,我感到震惊。我在某个地方读到,如果我使用transient,它将是好的,我必须验证它。@transient会做这个把戏@evanchooly我的字段是“transient”,我遇到了相同的问题。遗憾的是,我们需要将自己绑定到一个定制的注释
protected final Log logger = LogFactory.getLog(getClass());