首页 > 解决方案 > 如何让休眠自动生成数据库 EnumType?

问题描述

我的目标是创建一个@Entity使用hibernate自动生成下表:

CREATE TABLE data_history (
    id bigint auto_increment,
    action enum('INSERT','UPDATE','DELETE'),
    PRIMARY KEY(id)
);

问题是枚举:我如何告诉休眠生成该枚举类型?

我尝试如下:

@Entity
public class DataHistory {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public long id;
    
    @Enumerated(EnumType.STRING)
    public DatabaseTrigger action;
}

public enum DatabaseTrigger {
    INSERT, UPDATE, DELETE
}

结果:

action varchar(255) NOT NULL

标签: javamysqlhibernate

解决方案


这还不可能。也许在 6.x 中我们会引入对此的支持,但现在,您必须手动执行此操作。


推荐阅读