我试图创建一个表,在这个表中,我使用id属性作为UUID,但它显示错误,它在这个位置是无效的,它期待其他东西
CREATE TABLE account (
a_id UUID PRIMARY KEY,
a_hash VARCHAR(66) NOT NULL,
a_email VARCHAR(500) NOT NULL,
a_password VARCHAR(60) NOT NULL,
a_verification_key UUID NOT NULL,
a_disabled BOOLEAN DEFAULT FALSE NOT NULL,
a_verified BOOLEAN DEFAULT FALSE NOT NULL,
a_role VARCHAR(20) NOT NULL,
a_created_at TIMESTAMP DEFAULT NOW() NOT NULL
);
这里,_id字段是UUID类型,_verification_key也是UUID,在mysql工作台中给出错误
您可以使用UUID,使用@column
将columndefinition
指定为varchar(255)
或char(16)
或binary(16)
,这样您就可以使用UUID的功能。您可以根据需要更改策略和生成器
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@Column(name = "a_id", columnDefinition = "VARCHAR(255)")
private UUID a_id;
讨论函数UUID