Spring数据:无法确定类型:java.util.List,在表:user处,用于列:[org.hibernate.mapping.Column(roles)]

时间:2018-06-29 15:17:02

标签: spring-boot spring-data-jpa

我是Spring的新手,我正在学习本教程Spring Rest Services

了解oAuth如何与REST API配合使用。

在此之前,我的应用运行平稳。

在使用本教程时,它需要我的User实体实现UserDetails。而且我不得不添加一个额外的List<String> roles,因为它在实现UserDetailsImpl的{​​{1}}服务中使用了。

现在,当我运行UserDetailsService时,我得到标题中提到的错误。

我在网上查询,但是大多数问题与通过特定列进行的表关联有关,但是在我的代码中,没有映射到mvn spring-boot:run列/从中映射的关联类型。

这是我的roles实体:

User

这是我的@Entity public class User implements UserDetails { @Id private UUID id; private String name; private String email; private String password; private List<String> roles; public User (){ } public User (String email, String name, String password, UUID id, List<String> roles){ this.email = email; this.name = name; this.password = password; this.id = id; this.roles = roles; } public String getEmail() { return email; } public String getName() { return name; } @Override public Collection<? extends GrantedAuthority> getAuthorities() { return null; } @Override public String getPassword() { return password; } @Override public String getUsername() { return email; } @Override public boolean isAccountNonExpired() { return false; } @Override public boolean isAccountNonLocked() { return false; } @Override public boolean isCredentialsNonExpired() { return false; } @Override public boolean isEnabled() { return false; } public UUID getId() { return id; } List<String> getRoles() { return roles; } public void setPassword(String password) { this.password = password; } public void setEmail(String email) { this.email = email; } public void setName(String name) { this.name = name; } public void setId(UUID id) { this.id = id; } } 服务:

UserDetailsImp

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

字段private List<String> roles在数据库中具有未知类型。 尝试使用@ElementCollection注释。 https://docs.oracle.com/javaee/6/api/javax/persistence/ElementCollection.html