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.