Значение int хранится в базе данных как пустая строка, при попытке установить новое значение в старое значение возникает проблема «невозможно преобразовать строку в int» - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть форма, которая позволяет пользователям не вводить значение для customer_no, которое является значением int.Я предполагаю, что он хранится в базе данных как пустая строка?

Вот столбец customer_no INT(11) NULL,

Почему он хранится так?Я пытаюсь создать триггер, когда значение равно нулю или '', чтобы использовать старое сохраненное значение.Тем не менее он имеет ошибку не может преобразовать строку в Int.Любая помощь?Вот тело триггера

 IF NEW.customer_no IS NULL OR NEW.customer_no= '' 
 THEN SET NEW.customer_no= OLD.customer_no;
 END IF;

[Ошибка поля в объекте 'form' в поле 'customer_no': отклоненное значение [];коды [typeMismatch.form.customer_no, typeMismatch.customer_no, typeMismatch.int, typeMismatch];аргументы [org.springframework.context.support.DefaultMessageSourceResolvable: codes [form.customer_no, customer_no];аргументы [];сообщение по умолчанию [customer_no]];сообщение по умолчанию [Не удалось преобразовать значение свойства типа 'java.lang.String' в требуемый тип 'int' для свойства 'customer_no';вложенное исключение: java.lang.NumberFormatException: для входной строки: ""]] `

Я использую Springboot и запрос JDBC для получения информации из формы и обновления базы данных, однако, когдазначение равно нулю (а не целочисленное значение) Это показывает эту ошибку.Я хочу, чтобы у пользователя была возможность не вводить значение для этого поля, если он хочет обновить другие поля, и при этом сохранить старое значение, ранее введенное для этого конкретного поля.

Например, если ранее введенное значение customer_no равнялось 5 в базе данных, и пользователь обновляет другой столбец в базе данных и не вводит значение для этого поля, триггер должен использовать старое значение, хранящееся в 5, вместо нуля, но этоговорит "не может преобразовать строку в int"

Надеюсь, что это имеет смысл

Спасибо

1 Ответ

0 голосов
/ 08 декабря 2018

Измените поле в классе, получающем форму, с int на Integer.Затем он должен получить нулевое значение, которое, я думаю, является тем, что вы ищете.

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