Ok. I see.
Then you should use the GenericEnumUserType described under 
http://community.jboss.org/wiki/Java5EnumUserType (Flexible solution - working version)
We use it the same way like you described it.
Code:
@Type(type = "crossng.infrastructure.core.persistence.type.GenericEnumUserType", parameters =
    {@Parameter(name = "enumClass", value = "crossng.domain.api.dto.BusinessPartnerType"),
        @Parameter(name = "identifierMethod", value = "toCode"),
        @Parameter(name = "valueOfMethod", value = "fromCode")})
    @Column(name = "GPTYP", updatable = false, insertable = false)
    @Enumerated(EnumType.STRING)
    private BusinessPartnerType businessPartnerType;
Best regards.