Вы также можете отобразить непосредственно на таблицу, не создавая класс KeyValuePair
Для свойства карты с парами ключ-значение, хранящимися в MY_MAP_TABLE и определенными как свойство с именем 'settings':
Определите свойство:
@ElementCollection (fetch=FetchType.EAGER)
@CollectionTable(name="MY_MAP_TABLE" , joinColumns=@JoinColumn(name="ID"))
@MapKeyColumn(name="name")
@Column(name="value")
public Map<String, String> getSettings() {
return settings;
}
И таблица для хранения карты:
CREATE TABLE MY_MAP_TABLE (
ID NUMBER not null REFERENCES MY_PARENT_TABLE(ID),
NAME VARCHAR2(256) not null,
VALUE VARCHAR2(256) not null,
PRIMARY KEY (ID , NAME)
);