如何使用字符串类型在jpa-entity中创建ID?

时间:2018-09-27 10:27:25

标签: spring jpa

使用spring + jpa。 有一个实体,其中包含ID和具有字符串类型的字段名称:

@Entity
class Customer{

 @id
 String id;

 String name;
...
}

如果id-字段类型为int-一切正常。

如果id为Srting类型: SQLSyntaxErrorException:指定的密钥太长;默认值为0。最大密钥长度为1000个字节

使用的MySQL数据库。

create table riskmetric (id integer not null, name varchar(255), primary key (id)) engine=MyISAM

2 个答案:

答案 0 :(得分:0)

使用@Column解决

@Id
@Column(length = 10)
private String id;

答案 1 :(得分:0)

这样,您可以创建String类型的可生成ID:

@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Column(name = "PR_KEY")
private String prKey;