hazırda bekletme benim web uygulaması başlatmaya çalışıyorum, ancak özel durum almak:UserDetails ve istisna
java.util.Collection, at table: user, for columns: [org.hibernate.mapping.Column(authorities)]
Ben bitişimli kodu için üzgünüm ama SO az kod ve daha fazla ayrıntı gerektirir.
Benim Kullanıcı varlıktır:
@Entity
@Table(name = "user")
public class User extends BaseEntity implements UserDetails {
private String email;
private String password;
private Set<Role> roles;
@Column(name = "email", nullable = false, unique = true)
public String getEmail() {return email;}
public void setEmail(String email) {this.email = email;}
@Column(name = "password", nullable = false)
public String getPassword() {return password;}
public void setPassword(String password) {this.password = password;}
@ManyToMany
@JoinTable(name = "user_role",
joinColumns = {@JoinColumn(name = "user", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "role", referencedColumnName = "name")})
public Set<Role> getRoles() { return roles; }
public void setRoles(Set<Role> role) {this.roles = role;}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {return roles;}
@Override
public String getUsername() { return email; }
@Override
public boolean isAccountNonExpired() {return true; }
@Override
public boolean isAccountNonLocked() { return true; }
@Override
public boolean isCredentialsNonExpired() { return true; }
@Override
public boolean isEnabled() { return true; }
}
Ve Rol varlıktır:
@Entity
@Table(name = "Role")
public class Role implements GrantedAuthority, Serializable {
private String name;
@Id
@Column(name = "name")
public String getName() {return name;}
public void setName(String name) { this.name = name; }
@Override
public String getAuthority() {return name;}
}
'User' sınıfınızda' getAuthorities (..) 've' getRoles (..) 'iki yönteminiz vardır, her ikisi de 'roller' döndürür. "GetAutrhorities (..)" yöntemine ihtiyacınız var mı ve ayrıca herhangi bir "OneToMany" eşlemesi yok. Bunu kaldırmak ve denemek isteyebilirsiniz? –
@MadhusudanaReddySunnapu iyi, getAuthorities() 'yöntemini silemiyorum, ama içinde 'null' döndürmeyi deneyin ve aynı istisnayı alıyorum –
Geri dönüşü ile ilgili değil. Bu yönteme 'Geçiş 'açıklaması ekleyebilir ve deneyebilirsiniz. –