我是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
任何帮助将不胜感激。
答案 0 :(得分:1)
字段private List<String> roles
在数据库中具有未知类型。
尝试使用@ElementCollection
注释。
https://docs.oracle.com/javaee/6/api/javax/persistence/ElementCollection.html