spring boot@elementcollection:“field list”中的未知列“user\u roles”

tktrz96b  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(327)

我有一个简单的spring启动应用程序,我决定在那里添加Spring Security 和角色。下面是我的用户类:

//different fields

@ElementCollection(targetClass = UserRole.class, fetch = FetchType.EAGER)
@CollectionTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_id"))
@Enumerated(EnumType.STRING)
private Set<UserRole> userRoles;

以及 UserRole 枚举:

public enum UserRole implements GrantedAuthority {
    USER, ADMIN;

    @Override
    public String getAuthority() {
        return name();
    }
}

我有两张table
用户:

| id | name | pasword |
----------------------
|    |      |         |

用户角色:

| user_id |  user_role |
-----------------------
|         |            |

当我尝试创建新用户时,我得到:

Unknown column 'user_roles' in 'field list'

我认为它还应该为用户角色添加新记录。

c2e8gylq

c2e8gylq1#

尝试添加 @Column 指定 userRoles 以便它与 user_roles 收集表:

@ElementCollection(targetClass = UserRole.class, fetch = FetchType.EAGER)
@CollectionTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_id"))
@Enumerated(EnumType.STRING)
@Column(name = "user_role")
private Set<UserRole> userRoles;

这个 user_roles@Column 未指定。

相关问题