我有一个表格,允许用户不输入customer_no的值,它是一个整数值。它以我认为是空字符串的形式存储在数据库中吗?
这是列customer_no INT(11) NULL,
为什么这样存储?我正在尝试创建一个触发器,以在该值为null或''时使用存储的旧值。但是它具有无法将字符串转换为int的错误。有什么帮助吗?这是扳机体
IF NEW.customer_no IS NULL OR NEW.customer_no= ''
THEN SET NEW.customer_no= OLD.customer_no;
END IF;
[字段'customer_no'上对象'form'中的字段错误:拒绝的值[];码 [typeMismatch.form.customer_no,typeMismatch.customer_no,typeMismatch.int,typeMismatch];论点 [org.springframework.context.support.DefaultMessageSourceResolvable:代码 [form.customer_no,customer_no];参数[];默认消息[customer_no]];默认消息[失败 将'java.lang.String'类型的属性值转换为所需的'int'类型 属性'customer_no';嵌套的异常是java.lang.NumberFormatException:用于输入 字符串:“”]] `
我正在使用springboot和jdbc查询从表单中获取信息并更新数据库,但是,如果该值为null(而不是整数值),则会显示此错误。我希望用户可以选择不为该字段输入值,如果他们想更新其他字段,并且仍然保留以前为此特定字段输入的旧值。
例如,如果先前输入的customer_no在数据库中为5,并且用户更新数据库中的另一列并且未为此字段输入值,则触发器应使用存储的5的旧值而不是null,但它说“不能将字符串转换为int“
希望有点道理
谢谢
答案 0 :(得分:0)
将接收表单的类中的字段从int更改为Integer。然后,它应该获得一个空值,我想这就是您想要的。