首页 > 解决方案 > Spring Data JPA/Hibernate LazyInitializationException

问题描述

我是休眠/弹簧数据 JPA 的新手,在处理外键时遇到了一些问题。我有两张桌子:

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String name;


    @Column(nullable = false)
    private String email;

    @Column(nullable = false)
    private String password;

    @Column(nullable = false)
    private String role;


    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "job_id", referencedColumnName = "id")
    private Job job;
}
@Entity
public class Job{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String name;


    @OneToMany(
        mappedBy = "job",
        cascade = CascadeType.PERSIST,
        fetch = FetchType.EAGER
    )
    private Set<User> users = new HashSet<>();

}

我正在尝试在用户表中保存一份作业(job.Id)。但是,如果我尝试执行 get(repository.getOne(id)) (通过...extends JPARepository<User,Long>我收到以下错误: org.hibernate.LazyInitializationException: could not initialize proxy [backend.entity.User#193] - no Session 有人有提示如何解决它吗?我在 stackoverflow 上阅读了很多内容,但不知道如何解决解决这个问题。

标签: javaspringhibernatespring-bootspring-data-jpa

解决方案


推荐阅读