Hibernate (JPA), отображающий HashMap - PullRequest
4 голосов
/ 11 марта 2011

Предварительное чтение:

Как сохранить HashMap в спящем режиме

Моя проблема связана со следующей структурой, которую я хочу сопоставить с JPA:

Map<User, List<POJO>>

Мой POJO очень прост (без составных типов и т. Д., Только некоторые примитивы).

Как я могу реализовать совет в связанном вопросе?Как я могу аннотировать только часть List с помощью @Lob (Когда я просто аннотирую поле, я получаю ошибку приведения класса, потому что HashMap не может быть приведен к Blob, который является корнем моей проблемы - что я могу 'аннотировать только часть значений карты)?

Я не уверен, нужно ли мне делать тип-оболочку, реализующий Serializable, который оборачивает список, или достаточно просто использовать ArrayList, который сам Serializable,И в любом случае мне не удается сохранить этот экземпляр Map ...

Кстати, я открыт для советов о том, как поступить иначе: я мог бы просто прикрепить List как классчлен для каждого пользователя, хотя я не чувствую, что он принадлежит там, поскольку это не данные пользователя (например, данные учетной записи; имя, адрес и т. д.).Он аналогичен покупкам, поэтому я поместил их в служебный класс (внешний по отношению к классу User), который заботится об этих покупках, чтобы иметь более модульные модели.Я хотел бы услышать совет относительно того, звучит ли это разумно.

Любой полезный совет будет вознагражден воображаемым печеньем (и голосами против, очевидно).
Они обезжиренны в очень немнимый смысл.

ура.

1 Ответ

2 голосов
/ 14 марта 2011

Если у вас есть Карта, вы, вероятно, имеете отношение один ко многим. Вставьте свой список в User и сделайте ваш POJO сущностью, и не дурачитесь с @Lob, карта - это катастрофа, ожидающая случившегося (хэш-значение / равнозначные проблемы), и не дает чистого отображения базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...