You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot向SQL expense表插入数据时遇常量解析错误

问题排查与解决

错误原因

你的INSERT语句中值的顺序和expense表的字段顺序不匹配。从实体类映射的表结构来看,字段顺序应为:id → expensedate → description → location → category_id → user1_id(JPA会将关联实体映射为对应主键的外键列)。

但你编写的INSERT语句里,第二个值是字符串'New York Business Trip',对应到了表中类型为TIMESTAMP WITH TIME ZONE的expensedate字段,数据库尝试将该字符串解析为时间类型,因此抛出无法解析的错误。

解决方案

方案1:显式指定字段名(推荐)

在INSERT语句中明确写出要插入的字段名,即使后续表结构调整(比如新增字段、调整字段顺序),也不会出错:

insert into expense (id, expensedate, description, location, category_id, user1_id) 
values (100, '2019-06-16T17:00:00.000Z', 'New York Business Trip', 'New York', 1, 1);

注:如果你的表中外键列名不是category_id或user1_id(比如自定义了关联列名),需要替换为实际列名。

方案2:严格匹配字段顺序

若不想指定字段名,需保证values的顺序与表的字段顺序完全一致:

insert into expense values (100, '2019-06-16T17:00:00.000Z', 'New York Business Trip', 'New York', 1, 1);

额外建议

作为新手,优先使用显式指定字段名的写法,既能避免因表结构变更引发的错误,也能提升代码的可读性和维护性。

内容的提问来源于stack exchange,提问作者FineFree22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 14:04:55