Я хочу обновить две таблицы, связанные @ManytoMany Spring Boot? - PullRequest
0 голосов
/ 07 апреля 2020

Хорошо Я нахожусь в фазе обучения Spring Boot Но у меня есть проблема: у меня есть эти 2 таблицы

Таблица пользователей:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;

@Column(unique = true, length = 20)
private String username;

@Column(length = 60)
private String password;

private Boolean enabled;    

@Column(unique = true)
private String email;

//private Role role;

@ManyToMany(fetch = FetchType.LAZY/*, cascade = CascadeType.ALL*/)
@JoinTable(name = "usuarios_roles", 
joinColumns = @JoinColumn(name="usuario_id"), 
inverseJoinColumns = @JoinColumn(name="role_id"),
uniqueConstraints = {@UniqueConstraint(columnNames = {"usuario_id","role_id"})} )   
private List<Role> roles;

И другие таблицы Роли:

@Data
@Entity
@Table(name = "roles")
public class Role implements Serializable {


    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column(unique = true, length = 20)
    private String nombre;

Но я хочу обновить пользователя, но также обновить роль ролей:

Часть моего контроллера:

@PutMapping("/usuarios/{id}")
    @ResponseStatus(HttpStatus.CREATED)
    private Usuario update(@RequestBody Usuario usuario,@PathVariable Integer id) {
        Usuario usuarioActual = usuarioservice.findById(id);
        String passworEncrypt = passorEncoder.encode(usuario.getPassword());
        usuarioActual.setPassword(passworEncrypt);
        usuarioActual.setEmail(usuario.getEmail());     
        Role role=new Role();
        List<Role> rol=new ArrayList<>();

        usuarioActual.setRoles(rol);
        return usuarioservice.save(usuarioActual);
    }

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...