You have two options:
1. You use a custom Hibernate UserType,
like this one while you retain the DB column as enum_type.
2. You create a separate table: user_type which has an id column (PK) and an enum_value column which is of type enum_type. The id can also be the String representation if that's what you want.
This way, your mapping mapping will work:
Code:
@Enumerated(EnumType.STRING)
@Column(name="usertype")
private EnumUserTypes userType;
The "usertype" column will have to be a FK to the id in the user_type table. The only drawback is that you have to manually maintain the user_type table, as well as to create the FK because Hibernate cannot do that for you. However, this should be the default schema management strategy anyway, taking that you also use FlywayDb or Liquibase to automate schema migrations.