Stick with @Enumerated(EnumType.STRING)
. The values (PENDING_REVIEW
, APPROVED
, REJECTED
) are stable and not business-configurable. Renames can be handled via a one-time DB migration if it ever happens. The extra complexity of lookup tables or converters isn’t worth it unless requirements change.