程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何避免使用Spring Data JPA + Spring Web MVC在JSON序列化中进行延迟获取?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何避免使用Spring Data JPA + Spring Web MVC在JSON序列化中进行延迟获取??

开发过程中遇到如何避免使用Spring Data JPA + Spring Web MVC在JSON序列化中进行延迟获取?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何避免使用Spring Data JPA + Spring Web MVC在JSON序列化中进行延迟获取?的解决方法建议,希望对你解决如何避免使用Spring Data JPA + Spring Web MVC在JSON序列化中进行延迟获取?有所启发或帮助;

如果我对您的理解正确,则只希望在获取延迟加载的集合时进行序列化,但是不希望序列化触发获取。

如果是这种情况,则应使用jackson-datatype-hibernate,并按其文档中的说明进行添加

public class HibernateAwareObjectMapper extends ObjectMapper {

    public HibernateAwareObjectMapper() {
        registerModule(new Hibernate4Module());
    }
}

比注册

 <mvc:Annotation-driven>
        <mvc:message-converters>
            <!-- Use the HibernateAware mapper instead of the default -->
            <bean class="org.springframework.http.converter.Json.MapPingJackson2httpmessageConverter">
                <property name="objectMapper">
                    <bean class="path.to.your.HibernateAwareObjectMapper" />
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:Annotation-driven>

该模块具有 Feature.FORCE_LAZY_LOADING 设置,该设置指示是否应强制加载对象然后对其进行序列化,默认情况下该值设置为false ,我相信这是您需要的行为

解决方法

我有一个在Spring Web MVC中使用Spring Data JPA和REST Controller的解决方案。持久性提供程序是Hibernate。

持久层是使用Spring存储库构建的,并且在REST Controller和存储库之间存在一个服务层:

Entity <--> Repository <--> service <--> Controller

在实体级别,我有@OneToMany字段,FetchType = LAZY。

当REST控制器进行序列化时,将进行提取,但这在某些情况下是不可取的。

我已经尝试使用@JSONInclude Jackson批注,并且序列化仍然发生。

有人可以为我提供可靠的解决方案吗?

大佬总结

以上是大佬教程为你收集整理的如何避免使用Spring Data JPA + Spring Web MVC在JSON序列化中进行延迟获取?全部内容,希望文章能够帮你解决如何避免使用Spring Data JPA + Spring Web MVC在JSON序列化中进行延迟获取?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。