Получить сообщение аннотации java .validation.constraints.Size - PullRequest
0 голосов
/ 17 марта 2020

Я создаю панель с 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());
        }

1 Ответ

0 голосов
/ 18 марта 2020

Проверка, вероятно, происходит при гриппе sh, а не при сохранении. Таким образом, ваш блок try-catch должен проходить вокруг полной транзакции.

...