Specified key was too long; max key length is 1000 bytes
首先讲一下原因。数据库建立unique索引的时候计算key的长度是累加所有的index用到的字段的char 长度在按照字符长度进行累加,不能超过1000。
latin1 = 1 byte = 1 character
uft8 = 3 byte = 1 character
gbk = 2 byte = 1 character
所以解决方式是从两个方向:
1. 数据库修改配制增大长度。
2. 修改表字段长度。
使用方法二进行介绍:
@Entity
public class Reader implements UserDetails {
private static final long serialVersionUID =1L;
@Id
@Column(length = 20)
private String username;
@Column(length = 20)
private String fullname;
@Column(length = 20)
private String password;
......
实现UserDetails后,仅使用@Id设置主键,而不可控制长度的化,就会出现上述错误。使用@Column(length = )来指定字符长度。