SpringBoot2 JPA解决懒加载异常的问题

 更新时间:2021年01月29日 11:06:49   作者:易水墨龙吟  
这篇文章主要介绍了SpringBoot2 JPA解决懒加载异常的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

jpa解决懒加载异常

在我上一遍文章上进行行修改,SpringBoot2 实现JPA分页和排序分页

实体类上改:

@Entity
@Table(name = "employee")
@JsonIgnoreProperties(value={"hibernateLazyInitializer", "department"})
public class Employee {
 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Integer empId;
 private String lastName;
 private String email;
 @Temporal(TemporalType.DATE)
 private Date birth;
 @Temporal(TemporalType.TIMESTAMP)
 private Date createTime;
 @ManyToOne(fetch = FetchType.LAZY)
 @JoinColumn(name = "dept_id")
 private Department department;
 public Integer getEmpId() {
  return empId;
 }
 public void setEmpId(Integer empId) {
  this.empId = empId;
 }
 public String getLastName() {
  return lastName;
 }
 public void setLastName(String lastName) {
  this.lastName = lastName;
 }
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 public Date getBirth() {
  return birth;
 }
 public void setBirth(Date birth) {
  this.birth = birth;
 }
 public Date getCreateTime() {
  return createTime;
 }
 public void setCreateTime(Date createTime) {
  this.createTime = createTime;
 }
 public Department getDepartment() {
  return department;
 }
 public void setDepartment(Department department) {
  this.department = department;
 }
}

控制器验证

import java.util.Iterator;
@RestController
public class EmployeeController {
 @Autowired
 private EmployeeService employeeService;
 @GetMapping("/emp")
 public Page<Employee> showPage(@RequestParam(value = "page") Integer page, @RequestParam(value = "size") Integer size){
  System.out.println("分页: page:"+page+"; size:"+size);
  return employeeService.getPage(page, size);
 }
 @GetMapping("/emp_sort")
 public Page<Employee> showSortPage(@RequestParam(value = "page") Integer page, @RequestParam(value = "size") Integer size){
  System.out.println("排序分页: page:"+page+"; size:"+size);
  Page<Employee> list = employeeService.getPageSort(page, size);
  Iterator<Employee> it=list.iterator();
  while(it.hasNext()){
   System.out.println("value:"+(it.next()).getDepartment().getDeptName());
  }
  return list;
 }
}

我大概实现了一下,具体的如果大佬找到更好的方法或者发现我的方法是错的,希望各位大佬提醒一下!感谢!

补充:SpringBoot jpa 使用懒加载时,报异常:session失效

报异常:

could not initialize proxy - no Session

1、在方法上加@Transactional 注解,失败

2、在application.yml 文件加上jpa.properties.open-in-view: true 失败

3、在ResourceServerApplication.java 启动文件中加上:

 @Bean
 public OpenEntityManagerInViewFilter openEntityManagerInViewFilter() {
   return new OpenEntityManagerInViewFilter();
 }

成功解决~

总结:

要解决no session 问题需要:

配置文件中加jpa.properties.open-in-view: true同时在启动文件中加@Bean

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • Java连接数据库步骤解析(Oracle、MySQL)

    Java连接数据库步骤解析(Oracle、MySQL)

    本文主要介绍了Java连接Oracle数据库和MySQL数据库的步骤解析。具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • 详解Spring Boot中如何自定义SpringMVC配置

    详解Spring Boot中如何自定义SpringMVC配置

    这篇文章主要给大家介绍了关于Spring Boot中如何自定义SpringMVC配置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-09-09
  • SpringBoot继承LogStash实现日志收集的方法示例

    SpringBoot继承LogStash实现日志收集的方法示例

    这篇文章主要介绍了SpringBoot继承LogStash实现日志收集的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 深入了解MyBatis二级缓存

    深入了解MyBatis二级缓存

    今天小编就为大家分享一篇关于深入了解MyBatis二级缓存,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • 详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用)

    详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用)

    这篇文章主要介绍了详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用),非常具有实用价值,需要的朋友可以参考下
    2017-11-11
  • 浅谈选择结构if语句和switch语句的区别

    浅谈选择结构if语句和switch语句的区别

    下面小编就为大家带来一篇浅谈选择结构if语句和switch语句的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • JavaWeb servlet实现下载与上传功能的方法详解

    JavaWeb servlet实现下载与上传功能的方法详解

    这篇文章主要介绍了JavaWeb servlet实现下载与上传功能的方法,结合实例形式详细分析了JavaWeb servlet实现下载与上传功能的原理、实现方法与操作注意事项,需要的朋友可以参考下
    2020-04-04
  • MyEclipse到期破解代码分享

    MyEclipse到期破解代码分享

    前几天有个小伙伴咨询,使用的时候一直说myeclipse已过期,需要购买,如何解决?可以去网上搜搜注册码,但作为程序猿这么做简直太无趣,看看我们自己来解决这个问题
    2014-11-11
  • maven-compiler-plugin版本指定方式

    maven-compiler-plugin版本指定方式

    这篇文章主要介绍了maven-compiler-plugin版本指定方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java Json字符串的双引号(

    Java Json字符串的双引号("")括号如何去掉

    这篇文章主要介绍了Java Json字符串的双引号("")括号如何去掉?具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09

最新评论