Hibernate provides @Enumerated annotation which supports two types of Enum mapping either using ORDINAL or STRING. When w
@Enumerated
Enum
ORDINAL
STRING
Check these two articles - http://community.jboss.org/wiki/Java5EnumUserType and http://community.jboss.org/wiki/UserTypeforpersistingaTypesafeEnumerationwithaVARCHARcolumn
They solve the problem by a custom UserType.