Я создаю панель с JavaFx и springboot, я использую Spring-data-jpa для выполнения CRUD с моей базой данных MySql, но я бы хотел проверить валидацию, как макс символов в поле, и если я выброшу ошибку, я бы хочу показать диалог сообщения. Когда программа выдает исключение, в тексте @Entity Person .
. 1004 * отображается текст, содержащий
'message' имя переменной '. 1005 * catch (ConstraintViolationException e) Я использовал DataAccessException , но не нашел это исключение ни
Как решить проблему? Есть ли лучшее решение?
Лицо сущности
import lombok.Data;
import javax.persistence.*;
import javax.validation.constraints.Size;
@Data
@Entity
public class Person {
@Id
private Integer id;
@Size(max = 20, message = "Max characters is 20")
private String name;
}
Класс ControllerPerson
import com.implica.entity.Person;
import com.implica.repository.IPersonRepository;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class DatosPersonalesController implements Initializable {
@Autowired
private IPersonRepository personRepo;
private TextField nameTf;
Person p;
@Override
public void initialize(URL url, ResourceBundle rb) {
p = new Person();
nameTf.setText("Text more longer that your capacity");
p.setName(nameTf.getText());
}
try {
personRepo.save(p);
} catch (ConstraintViolationException e) {
System.out.println(e.getConstraintViolations().toArray(new ConstraintViolation[1])[0].getMessage());
}