Si le da a Hibernate una definición de columna, no intentará adivinar una:
@Column(columnDefinition = "enum('MALE','FEMALE')")
@Enumerated(EnumType.STRING)
private Gender gender;
Si no confía en Hibernate para generar su esquema por algún motivo, ni siquiera tiene que proporcionar valores reales para la definición de columna. De esta manera, elimina una instancia en la que necesita mantener los valores sincronizados. Simplemente mantenga su enumeración de Java y su script Liquibase o SQL sincronizados:
@Column(columnDefinition = "enum('DUMMY')")
@Enumerated(EnumType.STRING)
private ManyValuedEnum manyValuedEnum;