用Hibernate生成数据表时,Hibernate执行了下面的SQL语句:
create table Address (addressId varchar(255) not null auto_increment, name varchar(255), primary key (addressId))
用了log4j检查:hibernat提示以下错误:
10:56:24,546 ERROR SchemaExport:274 - Unsuccessful: create table Address (addressId varchar(255) not null auto_increment, name varchar(255), primary key (addressId))
10:56:24,546 ERROR SchemaExport:275 - Incorrect column specifier for column 'addressId'
原来自动增长列用int数据类型,不用varchar.
Hibernate根据Address.java中的代码
private String addressId;
private String name;
这样指定了“addressId varchar(255) not null auto_increment”
改为别的,要是自动增长列,要么将addressId改为Integer类型,或者将映射文件改为 其他主键生成策略。
本文介绍了一个关于Hibernate配置中自动增长字段类型的常见错误及解决方法。错误在于使用了varchar类型作为自动增长的主键,正确的做法是使用整数类型,并调整Java类或映射文件以匹配正确的主键生成策略。

1万+

被折叠的 条评论
为什么被折叠?



