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
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;