我使用Jackson 2.2.3将POJO序列化为JSON。然后我遇到了一个问题,就是我无法序列化递归结构...我通过使用@JsonIdentityInfo=> 解决了这个问题,效果很好。
但是,我不希望此注释位于POJO的顶部。
所以我的问题是:还有其他可能性设置我的默认行为ObjectMapper以对每个POJO使用该功能吗?
所以我想转换这个注释代码
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
Run Code Online (Sandbox Code Playgroud)
像
ObjectMapper om = new ObjectMapper();
om.setDefaultIdentityInfo(ObjectIdGenerators.IntSequenceGenerator.class, "@id");
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正面临lib问题...我想我在任何地方都有lib冲突,但我找不到它...
我做了什么 我将Hibernate Libs从4.x升级到5.3.1,并从Java 8切换到Java 10 ...我也将Spring libs升级到5.0.4-RELEASE。
我发现休眠5.3.1需要一些jaxb依赖关系,因此我添加了它们,但仍然出现此异常:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl
at com.sun.xml.bind.v2.model.impl.RuntimeTypeInfoSetImpl.<init>(RuntimeTypeInfoSetImpl.java:63) ~[jaxb-impl-2.3.0.jar:2.3.0]
at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:128) ~[jaxb-impl-2.3.0.jar:2.3.0]
at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:84) ~[jaxb-impl-2.3.0.jar:2.3.0]
at com.sun.xml.bind.v2.model.impl.ModelBuilder.<init>(ModelBuilder.java:162) ~[jaxb-impl-2.3.0.jar:2.3.0]
at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.<init>(RuntimeModelBuilder.java:92) ~[jaxb-impl-2.3.0.jar:2.3.0]
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:455) ~[jaxb-impl-2.3.0.jar:2.3.0]
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:303) ~[jaxb-impl-2.3.0.jar:2.3.0]
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:139) ~[jaxb-impl-2.3.0.jar:2.3.0]
at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1156) ~[jaxb-impl-2.3.0.jar:2.3.0]
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:165) ~[jaxb-impl-2.3.0.jar:2.3.0]
at jdk.internal.reflect.GeneratedMethodAccessor31.invoke(Unknown Source) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:297) ~[jaxb-api-2.3.0.jar:2.3.0]
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:286) ~[jaxb-api-2.3.0.jar:2.3.0]
at javax.xml.bind.ContextFinder.find(ContextFinder.java:409) ~[jaxb-api-2.3.0.jar:2.3.0]
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721) ~[jaxb-api-2.3.0.jar:2.3.0]
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662) ~[jaxb-api-2.3.0.jar:2.3.0]
at org.hibernate.boot.jaxb.internal.MappingBinder.hbmJaxbContext(MappingBinder.java:82) ~[hibernate-core-5.3.1.Final.jar:5.3.1.Final]
at org.hibernate.boot.jaxb.internal.MappingBinder.doBind(MappingBinder.java:62) ~[hibernate-core-5.3.1.Final.jar:5.3.1.Final]
at org.hibernate.boot.jaxb.internal.AbstractBinder.doBind(AbstractBinder.java:102) …Run Code Online (Sandbox Code Playgroud)