Имам структура от данни, която се свежда до:
class StylesheetUserPreferencesImpl {
long id;
String desc;
Map<String, Map<String, String>> nodeAttributes;
}
За да опитам да направя анотациите на JPA2 малко по-разумни, създадох малък клас, за да представя вътрешния клас:
class LayoutAttributeImpl {
String nodeId;
private Map<String, String> attributes;
}
Което ми дава:
class StylesheetUserPreferencesImpl {
long id;
String desc;
Map<String, LayoutAttributeImpl> nodeAttributes;
}
Това, което бих искал в крайна сметка, е структура на таблица, която изглежда така:
SS_USER_PREFS
PREFS_ID
DESC
SS_LAYOUT_ATTRS
PREFS_ID
NODE_ID
NAME
VALUE
Все пак не съм много сигурен как да картографирам това в JPA. Изглежда, че искам LayoutAttributeImpl да бъде Embeddable, но доколкото разбирам, Embeddable обектите не могат да съдържат колекции. Работи ми в момента с LayoutAttributeImpl, действащ като пълноправен @Entity, но това ми дава допълнителна таблица, която наистина не ми трябва.