【发布时间】:2020-05-24 11:14:21
【问题描述】:
**hi big community! someone can help me**
**here: Role entity**
@Entity
@Table(name="roles")
public class Role implements Serializable {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String obser;
public Role() {
super();
}
public Role(Integer id, String obser) {
super();
this.id = id;
this.obser = obser;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getObser() {
return obser;
}
public void setObser(String obser) {
this.obser = obser;
}}
@Entity
@Table(name="users")
public class User implements Serializable{
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
private String username;
private String password;
private Boolean active;
private String email;
@ManyToMany
@JoinTable(name="USERS_ROLES",
joinColumns={@JoinColumn(name="username", referencedColumnName="username")},
inverseJoinColumns={@JoinColumn(name="obser", referencedColumnName="obser")}
)
private Collection<Role>roles;
public Collection<Role> getRoles() {
return roles;
}
public void setRoles(Collection<Role> roles) {
this.roles = roles;
}
public User() {
super();
}
public User(Integer id,String username, String password, Boolean active, String email) {
super();
this.id = id;
this.username = username;
this.password = password;
this.active = active;
this.email = email;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Boolean getActive() {
return active;
}
public void setActive(Boolean active) {
this.active = active;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}}
**here is y Role RoleRepository:**
public interface RoleRepository extends JpaRepository<Role, Integer> {
List<Role> findAll();
Role findByObser(String obser);
}
**here is my User RoleRepository:**
public interface UserRepository extends JpaRepository<User, Integer> {
User findByUsername(String username);
}
**here is my function AddRoleToUser in my UserService:**
**When I want to add a role to a user, I use this method**
@RequestMapping(value="/addRoleToUser")
public User addRoleToUser(String username, String role) {
User u = userRepository.findByUsername(username);
Role r = roleRepository.findByObser(role);
u.getRoles().add(r);
userRepository.save(u);
return u;
}
不幸的是,它没有将角色分配给用户,并且会创建以下类型的异常: 查询未返回唯一结果:3;嵌套异常是 javax.persistence.NonUniqueResultException:查询没有返回唯一结果:3 然后我问是否有人可以帮助我 其他方法如添加角色,添加用户其权杖问题
【问题讨论】:
标签: spring-mvc spring-security hibernate-mapping spring-security-rest