【发布时间】:2019-02-11 04:03:49
【问题描述】:
我正在尝试添加新名称、姓氏和电子邮件。单击保存按钮后,我收到一条错误消息“字段 'id' 上的对象 'employee' 中的字段错误” 我该如何解决这个错误。我正在使用带有 thymeleaf 和 jquery 的 spring boot。
和
项目链接为:Here
谢谢
【问题讨论】:
标签: jquery spring-boot thymeleaf
我正在尝试添加新名称、姓氏和电子邮件。单击保存按钮后,我收到一条错误消息“字段 'id' 上的对象 'employee' 中的字段错误” 我该如何解决这个错误。我正在使用带有 thymeleaf 和 jquery 的 spring boot。
和
项目链接为:Here
谢谢
【问题讨论】:
标签: jquery spring-boot thymeleaf
将您的列 ID 声明为 Integer 并且不要从 UI 传递它或将值传递为空对象。如果你想保持它 int 然后总是从 UI 传递 0 。传递空字符串总是会引发异常,直到您没有自己的 messageConverter 处理。
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name=id)
private Integer id;
【讨论】:
您需要在控制器上将名为 id 的参数更改为 Integer 而不是 int。原始 int 变量不能为空。
【讨论】:
发生错误是因为员工实体的“id”字段为空白/空字符串。根据 Employee.java 中的“id”定义,它应该是一个整数值。在保存之前,您需要将一些整数值传递给员工对象的这个“id”字段。使用以下技术让应用程序使用数据库序列。
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_generator")
@SequenceGenerator(name="seq_generator", sequenceName = "my_seq", allocationSize=50)
@Column(name = "id", updatable = false, nullable = false)
private int id;
【讨论】: