Я создаю веб-приложение Java Spring Boot, и сегодня я удалил все содержимое одной из моих таблиц под названием «пользователи». В моем приложении «администратор» (я) может регистрировать других пользователей в приложении, чтобы они могли войти в систему и использовать приложение.
Все работало нормально до того, как я выполнил команду drop table users
в MySQL Верстак. И теперь, когда я go регистрирую пользователя, вместо того, чтобы работать должным образом, я получаю сообщение об ошибке:
«Данные слишком длинные для столбца« пароль »в строке 1».
Это никогда не было проблемой раньше, и я не уверен, почему это происходит сейчас, но я не изменил ни одного кода, и я не уверен, какой код я мог бы потенциально прикрепить к этому сообщению по порядку для дальнейшего прояснения вопроса.
Любая помощь будет принята либо к
- Восстановить таблицу туда, где она была (что я не думаю, что здесь возможен откат)
- Рисунок выяснить, что могло измениться в коде.
Ниже у меня есть создание объекта, но, опять же, я ничего не изменил, и все работало нормально. У меня тоже идет шифрование, но, опять же, единственное, что я сделал, это отбросил таблицу, а затем воссоздал ее при запуске как «Java Application», как я всегда делал.
package bcoreHW.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import bcoreHW.validation.PasswordMatch;
@Entity
@Table(name="Users")
@PasswordMatch(message="{register.repeatPassword.mismatch}")
public class SiteUser {
@Id
@Column(name="userId")
@GeneratedValue(strategy=GenerationType.AUTO)
private Long userId;
@Column(name="email", unique=true)
@Email(message="{register.email.invalid}")
@NotBlank(message="{register.email.invalid}")
private String email;
@Transient // meaning it will not be saved in DB
@Size(min=5, max=15, message="{register.password.size}")
private String plainPassword; //unencrytped
@Transient
private String repeatPassword;
@Column(name="password", length=50)
private String password;
@Column(name="role", length=20)
private String role;
public String getPlainPassword() {
return plainPassword;
}
public void setPlainPassword(String plainPassword) {
this.password = new BCryptPasswordEncoder().encode(plainPassword);
this.plainPassword = plainPassword;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRepeatPassword() {
return repeatPassword;
}
public void setRepeatPassword(String repeatPassword) {
this.repeatPassword = repeatPassword;
}
}