spring mapowanie wartości kolumny w tabeli

0

Hej,
robie api które to będzie wyświetlało listę książek. W bazie mam tabelę a w niej kolumnę w której są możliwe wartości: D, N, R i teraz przy wiświetlaniu wyników z api chce aby wiświetlało się zamiast np. D słowo Dostępny, zamiast N niedostępny a zamiast R rezerwacja... Jak to zrobić w springu? Podajcie prosze jakiś przykład

0

nie interesuje mnie rozwiązanie aby dodawac słowniki do bazy,
tak spring data i jpa
wiec macie jakieś lepsze pomysły?

0

ta w sumie też to znalazłem wcześniej ale wydawało mi sie dość słabe :) dobra, chyba z tego skorzystam jednak

0

Przy @Enumerated(EnumType.STRING) należy pamiętać, żeby nie zmianiać nazw enumów, przy @Enumerated(EnumType.ORDINAL) aby nie zmianiać kolejności enumów.

Przykładowy kod do twojej realizacji:

@Enumerated(EnumType.STRING)
    private Status status;
enum Status{
        AVAILABLE("book.status.available"), NOT_AVAILABLE("book.status.notAvailable"), RESERVED("book.status.reserved");

        final String messageCode;

        Status(String messageCode) {
            this.messageCode = messageCode;
        }
    }

Dzięki temu, że enum może posiadać pola, zaszyliśmy w nich kody wiadomości, które przechowujemy w propertisach. Osiągniemy dzięki temu internacjonalizacje. Wyciągnięcie kodu wiadomości:

final String messageCode = book.getStatus().messageCode;

1 użytkowników online, w tym zalogowanych: 0, gości: 1