java MongoDB Spring保存对象会导致StackOverflower错误
我们的架构将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)
或
java.lang.StackOverflowError
at sun.misc.Unsafe.getObject(Native Method)
at sun.misc.Unsafe.getObject(Unsafe.java:231)
at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:19)
at java.lang.reflect.Field.get(Field.java:358)
at org.springframework.util.ReflectionUtils.getField(ReflectionUtils.java:118)
at org.springframework.data.mapping.model.BeanWrapper.getProperty(BeanWrapper.java:133)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter$3.doWithPersistentProperty(MappingMongoConverter.java:382)
在我添加所有结合了我们架构的主要类之前,我想知道 你们中有人以前遇到过这种异常吗
# 1 楼答案
显然,我无法将记录器添加到我的数据对象中
当我移除记录器时,它又开始工作了
在MongoDB的数据对象中使用记录器时要小心
似乎使用@Transient应该向MongoDB驱动程序发出信号,不要持久化记录器变量
http://docs.spring.io/spring-data/data-document/docs/current/reference/html/#mapping-usage-annotations