我正在尝试使用 Spring 3.x @ResponseBody
生成 json/xml 响应,当存在多对多关系黑白表时,我正在使用 JPA 2.0 ORM 然后 json 抛出 LazyInitializationException
如果我给出“eager fetch”,那么它将进入循环引用。
最佳答案
我最近遇到了类似的问题:Jackson - serialization of entities with birectional relationships (avoiding cycles)
所以解决方案是升级到 Jackson 2.0,并在类中添加以下注释:
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class,
property = "@id")
public class SomeEntityClass ...
那么问题是 Spring 不适用于 Jackson 2.0。这已通过以下方式解决:
<bean id="jacksonMessageConverter"
class="own.implementation.of.MappingJacksonHttpMessageConverter"/>
<bean class="org.springframework.web.servlet.mvc
.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter"/>
</list>
</property>
<property name="requireSession" value="false"/>
</bean>
own.implementation.of.MappingJacksonHttpMessageConverter
是基于此:
但是使用 Jackson 2.0 中的 ObjectMapper 和其他 Jackson 类而不是 Jackson 1.*
关于java - Spring @ResponseBody Json 循环引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727279/