繁体   English   中英

Hibernate为DB2生成错误的插入语句

[英]Hibernate generates wrong insert statement for DB2

我正在将休眠与DB2数据库一起使用。 当我运行春季批处理作业时,我有以下异常:

org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [insert into "PERSON" (id, first_name, last_name) values (default, ?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement

当我从日志中将查询粘贴到IBM Data Studio时,我看到该查询似乎缺少字段名称的引号。 有效语句为

insert into "PERSON" ("id", "first_name", "last_name") values (default, 'John122', 'Doe21')

我怎样才能解决这个问题?

谢谢

以下两个语句之间有区别:

create table Person ( id integer, first_name vargraphic(80), last_name vargraphic(80) );

create table "Person" ( "id" integer, "first_name" vargraphic(80), "last_name" vargraphic(80) );

第一条语句创建表PERSON,其表列ID为FIRST_NAME和LAST_NAME(请注意大写!)。 第二条语句创建具有列id,first_name和last_name的表Person。

似乎您使用第二个定义创建了表,但是正在尝试使用对第一个表定义正确的语句来更新它。

TL; DR:DB2始终以大写形式创建所有表名和列名,除非名称在(双引号)之间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM