Класс-сущность может содержать поле типа Map, в котором либо ключ, либо значение, либо и то и другое будет встраиваемого (@Embeddable) типа. Такие данные отображаются в отдельные таблицы, которые можно настроить с помощью @ElementCollection и @CollectionTable, а также некоторых других аннотаций.
Читать далееАрхив метки: @jakarta.persistence.MapKeyColumn
Отображение поля типа Map в отдельную таблицу в Hibernate с помощью аннотаций @ElementCollection и @CollectionTable
Если отображаемый класс содержит поле типа Map, параметризованное базовыми типами (<String, String>, <Integer, Boolean> и т.п.), то данные этого поля не могут быть отображены просто в колонку соответствующей таблицы. Их необходимо отобразить в отдельную таблицу с внешним ключом на id основной.
Например, если класс Person содержит поле Map<String, Boolean> emails, то список адресов электронной почты конкретного человека не может храниться с ним в одной таблице PERSON, нужно завести для них отдельную таблицу EMAILS и хранить там. Hibernate позволяет решить эту задачу, не создавая отдельный класс-сущность Email, а просто разметив поле Map<String, Boolean> emails аннотациями @ElementCollection, @CollectionTable, @MapKeyColumn и @Column.
Читать далее