Musiałem to kiedyś zrobić... wielojęzyczny tekst dla niektórych tabel... Nie wiem, czy znalazłem najlepsze rozwiązanie, ale to, co zrobiłem, to mieć tabelę z informacjami niezależnymi od języka, a następnie tabelę podrzędną ze wszystkimi pola wielojęzyczne. W tabeli podrzędnej wymagany był co najmniej jeden rekord dla języka domyślnego; więcej języków można dodać później.
W Hibernate możesz zmapować informacje z tabel podrzędnych jako Map i uzyskać informacje dla żądanego języka, implementując rezerwę na POJO, tak jak powiedziałeś. Możesz mieć różne metody pobierania dla pól wielojęzycznych, które wewnętrznie wywołują metodę rezerwową, aby pobrać odpowiedni obiekt podrzędny dla wymaganego języka, a następnie po prostu zwracają wymagane pole.
To podejście wykorzystuje więcej tabel (jedna dodatkowa tabela na każdy stół, który wymaga wielojęzycznych informacji), ale wydajność jest znacznie lepsza, a także konserwacja, jak sądzę...