Enum in Hibernate, persisting as an enum

后端 未结 5 1886
梦如初夏
梦如初夏 2020-11-29 05:07

In my MySQL database, there\'s the column \"gender enum(\'male\',\'female\')\"

I\'ve created my enum \"com.mydomain.myapp.enums.Gender\", and in my Person

5条回答
  •  囚心锁ツ
    2020-11-29 05:35

    If you give Hibernate a column definition, it won't try to guess one:

    @Column(columnDefinition = "enum('MALE','FEMALE')")
    @Enumerated(EnumType.STRING)
    private Gender gender;
    

    If you aren't relying on Hibernate to generate your schema for any reason, you don't even have to provide real values for the columnDefinition. This way, you remove an instance where you need to keep the values in sync. Just keep your Java enum and your Liquibase or SQL script in sync:

    @Column(columnDefinition = "enum('DUMMY')")
    @Enumerated(EnumType.STRING)
    private ManyValuedEnum manyValuedEnum;
    

提交回复
热议问题