Постоянство JPA2 для карты @ManyToMany, содержащей набор - PullRequest
6 голосов
/ 08 ноября 2010

Мне нужно сохранить элемент с типом Map<Item, Set<Item>>, используя аннотации JPA2.Отношение много ко многим, и объекты Item являются сущностями.

Должен ли я создать отдельную промежуточную сущность, имеющую Set<Item> или возможно прямое сопоставление?

Пожалуйста, сообщите, если какой-то контекст отсутствует.

1 Ответ

6 голосов
/ 09 ноября 2010

Должен ли я создать отдельную организацию-посредника, владеющую Set<Item>, или возможно ли прямое сопоставление?

JPA не поддерживает отношения вложенных коллекций (List из List с, Map из Set с и т. Д.). Вот соответствующий раздел спецификации о Map:

2.7 Коллекции карт

Коллекции элементов и сущностей отношения могут быть представлены как java.util.Карта коллекции.

Ключ карты и значение карты независимо друг от друга могут составлять базовый тип, встраиваемый класс или юридическое лицо.

...

Так что да, используйте сущность, имеющую Set<Item>, а затем сопоставьте свое отношение как Map<Item, MyHolder>.

Ссылки

...