roles列表抛出“org.hibernate.lazyinitializationexception”异常

fnatzsnv  于 2021-07-07  发布在  Java
关注(0)|答案(0)|浏览(240)

我现在正忙着使用springsecurity为我的全栈web应用程序创建一个角色系统,但是我的角色列表遇到了一个问题。我将角色存储在数据库中,如下所示:我的用户对象中有一个角色列表:

@Entity
@Table(name = "users")
public class User {
    @ManyToMany(cascade=CascadeType.ALL)
    @JoinTable(name="user_roles",
            joinColumns = { @JoinColumn(name = "userId") },
            inverseJoinColumns = { @JoinColumn(name = "roleId") })
    private List<Role> roles = new ArrayList<>();

    public User(){
        this.roles.add(new Role(UserRole.ROLE_USER));
}
}

在我的角色对象中,我有以下代码:

@Entity
@Table(name= "roles")
public class Role {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int roleId;

    @Enumerated(EnumType.ORDINAL)
    private UserRole roleName;

    @JsonIgnore
    @ManyToMany(cascade=CascadeType.ALL, mappedBy="roles")
    private Collection<User> users = new ArrayList<>();

    public Role(UserRole roleName) {
        this.roleName = roleName;
    }
}

枚举用户角色包括以下内容:

public enum UserRole {
    ROLE_USER,
    ROLE_ADMIN
}

当我查看数据库时,我的用户确实得到了正确的角色,但是代码没有很好地处理数据。它在断点中显示以下内容:
对象
错误
有人知道我做错了什么吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题