Я использую Hibernate 3.6, но предпочитаю придерживаться аннотаций JPA, если это возможно.
У меня есть родительская сущность, которая имеет идентификатор и, возможно, другие простые свойства (имя, описание и т. Д.), Но будет иметь двумерную коллекцию дочерних элементов (в простом случае - строки).
В идеале я бы хотел, чтобы ParentEntity выглядел так:
class ParentEntity {
@Id
private Long id;
....
@????
// first Long should be column_index, second Long should be row_index
private Map<Long,Map<Long,String>> gridOfStrings;
}
В моей базе данных мой gridOfString представлен так:
GridItems
------------
grid_id (int,FK to grid)
column_index (int)
row_index (int)
value (varchar)
У меня есть некоторая гибкость, чтобы изменить схему или способ работы объекта.
Какой самый ясный способ заставить Hibernate сделать магию для меня? Я хочу избежать необходимости писать логику для отображения / преобразования списка сущностей в столбцы строк строк.
Альтернативный подход
Могу предположить, что у меня будет только 2 или 3 столбца, и я сделаю их отдельными Картами. Я не уверен, как настроить фильтр гибернации при каждом соединении.
Сущность может выглядеть так:
@???
//rows where column_index=1
private Map<Long,String> column1;
...
private Map<Long,String> column2;
...
private Map<Long,String> column3;