【发布时间】:2018-09-27 10:27:25
【问题描述】:
使用弹簧+jpa。 有实体,它包含字符串类型的id和字段名称:
@Entity
class Customer{
@id
String id;
String name;
...
}
如果 id - 字段类型 int - 一切正常。
如果 id 是 Srting 类型: SQLSyntaxErrorException:指定的键太长;最大密钥长度为 1000 字节
使用 MySQL 数据库。
create table riskmetric (id integer not null, name varchar(255), primary key (id)) engine=MyISAM
【问题讨论】:
-
该类的关联表的定义是什么?即 DDL
-
@BillyFrost 这次只有 hello world 程序,所以只有实体有两个字段 - id 和 name。
-
不回答问题。数据库表定义为什么?列类型、长度、可空性等。如果您没有先创建表,您的 JPA 提供商可能会为您创建表
-
@BillyFrost 是的,我使用了 create-drop,所以,应用程序启动后,此表将由应用程序创建(而不是手动)
-
删除表重新创建……PK不是INT,需要重新创建。