Spring SimpleJdbcInsert 失败 'INSERT has more target columns than expressions'

Spring SimpleJdbcInsert fails with 'INSERT has more target columns than expressions'

我正在使用 SimpleJdbcInsert 将行插入到 PostgreSQL 数据库中。但是,我收到以下错误:

Caused by: org.postgresql.util.PSQLException: ERROR: INSERT has more target columns than expressions. org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO product (product_id,product_name,product_code,in_ stock,product_category) VALUES(?)]; SQL state [25P02]; error code [0]; ERROR: current transaction is aborted, commands ignored until end of transaction block; nested exception is org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block

数字列与我在打印出如下所示的 MapSqlParameterSource 对象时尝试插入的值的数量完全相同:

        Parameters Names :: 
        [
        product_id,
        product_name, 
        product_code, 
        in_ stock, 
        product_category
      ]

       Parameters Values :: [{
       product_id=1518, 
       product_name=Sofa, 
       product_code=150,  
       in_stock=true, 
       product_category=null, 
     }]

product_id为主键,不为空。问题可能是因为我没有使用自动生成的主键吗?我仍然不明白为什么那会是个问题。

错误消息中显示的列与我正在打印的参数列表中的列完全相同。这些值也与列数相符,所以我真的很困惑为什么 PostgreSQL 会给出这个错误。请帮忙!

我能够使用 Spring JDBC.

的不同解决方案来解决它