Spring集成JPA配置懒加载报错解决方案

 更新时间:2019年10月18日 10:31:08   作者:LOGO-IT  
这篇文章主要介绍了Spring集成JPA配置懒加载报错解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一:报错no session

因为entitymanager对象在事物提交后就关闭了 报错的 no session相当于sql的session

解决办法:解决办法 在web.xmL配置一个过滤器 使其在这个session中的manager在结束后再关闭open

<!--配置openmanager-->
<filter>
 <filter-name>openEntity</filter-name>
 <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
<filter-mapping>
 <filter-name>openEntity</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>

在完成上面的配置后会报第二个错误

二 报错no serializer报错

解决办法1:在需要配置懒加载的字段上加 @JsonIgnoreProperties(value = {"hibernateLazyInitializer","handler","fieldHandler"})这种方式只管当前字段属性的懒加载

    @ManyToOne(fetch = FetchType.LAZY)
   @JoinColumn(name="department_id")
   @JsonIgnoreProperties(value = {"hibernateLazyInitializer","handler","fieldHandler"})
   private Department department;

解决办法2:重写:ObjectMapper,然后在applicationContext-mvc.xml 配置这个映射(这个方法一劳永逸,之后在Spring集成JPA进行懒加载的时候,都会避免No serializer的错误)

第一步:

public class CustomMapper extends ObjectMapper {
  public CustomMapper() {
    this.setSerializationInclusion(JsonInclude.Include.NON_NULL);
    // 设置 SerializationFeature.FAIL_ON_EMPTY_BEANS 为 false
    this.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
  }
}

第二步:配置spring-mvc.xml

<!--注解支持-->
<mvc:annotation-driven>
  <mvc:message-converters>
    <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
      <property name="supportedMediaTypes">
        <list>
          <value>application/json; charset=UTF-8</value>
          <value>application/x-www-form-urlencoded; charset=UTF-8</value>
        </list>
      </property>
      <!-- No serializer:配置 objectMapper 为我们自定义扩展后的 CustomMapper,解决了返回对象有关系对象的报错问题 -->
      <property name="objectMapper">
        <bean class="com.logo.aisell.util.CustomMapper"></bean>
      </property>
    </bean>
  </mvc:message-converters>
</mvc:annotation-driven>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot统一返回结果问题

    SpringBoot统一返回结果问题

    这篇文章主要介绍了SpringBoot统一返回结果问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 详解Java8如何使用Lambda表达式进行比较

    详解Java8如何使用Lambda表达式进行比较

    Lambda表达式,也可称为闭包,是java8的新特性,作用是取代大部分内部类,优化java代码结构,让代码变得更加简洁紧凑。本文将利用Lambda表达式进行排序比较,需要的可以参考一下
    2022-01-01
  • Java中SpringBoot的@Transactional原理

    Java中SpringBoot的@Transactional原理

    这篇文章主要介绍了Java中SpringBoot的@Transactional原理,面向元数据遍历已经成为越来越多开发者的偏好,因此原理从Springboot的EnableTransactionManagement注解说起,需要的朋友可以参考下
    2023-07-07
  • IDEA中osgi的开发应用指南详解

    IDEA中osgi的开发应用指南详解

    这篇文章主要介绍了IDEA中osgi的开发应用指南详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 快速使用IDEA图形化界面连接Phoenix的方法

    快速使用IDEA图形化界面连接Phoenix的方法

    最近很多朋友跟小编留言如何使用IDEA图形化界面连接Phoenix,在这小编就不一一回复大家了,今天抽空给大家整理一篇教程关于idea 图形化界面连接Phoenix的相关知识,需要的朋友快来学习下吧
    2021-05-05
  • java语言图形用户登录界面代码

    java语言图形用户登录界面代码

    这篇文章主要为大家详细介绍了java语言图形用户登录界面代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解

    Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解

    这篇文章主要介绍了Mybatis-Plus的分页插件与乐观锁插件还有通用枚举和多数据源的相关介绍,文中代码附有详细的注释,感兴趣的朋友来看看吧
    2022-03-03
  • 浅谈spring-boot的单元测试中,@Before不被执行的原因

    浅谈spring-boot的单元测试中,@Before不被执行的原因

    这篇文章主要介绍了浅谈spring-boot的单元测试中,@Before不被执行的原因,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • java 对文件夹目录进行深度遍历实例代码

    java 对文件夹目录进行深度遍历实例代码

    这篇文章主要介绍了java 对文件夹目录进行深度遍历实例代码的相关资料,需要的朋友可以参考下
    2017-03-03
  • java_IO向文件中写入和读取内容代码实例

    java_IO向文件中写入和读取内容代码实例

    这篇文章主要介绍了java_IO向文件中写入和读取内容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论