2015-01-19 2 views
0

Возможно, я немного не прав, однако я пытаюсь реорганизовать свой код прямо сейчас, используя аннотацию @Converter от JPA 2.1, чтобы перенаправить преобразование атрибута в dbdata из класса POJO в отдельный класс. В основном я использую настраиваемое преобразование для хранения своего рода блога JSON в столбце базы данных. У меня есть несколько случаев, когда мне нужно полагаться на порядок дочерних объектов, т. Е. Я храню набор используемых дочерних объектов во многих таблицах, чтобы сохранить взаимосвязь между элементами и, кроме того, порядок в JSON, который просто хранит идентификаторы дочерних объектов (чтобы сохранить порядок). Затем у меня есть разрешающий механизм, который поддерживает обе стороны всегда актуальными, т. Е. Данные db (строка) будут преобразованы в (упорядоченный) список дочерних объектов (которые также хранятся в БД и доступны через набор дочерних объектов (отношения «многие-ко-многим»).Могу ли я использовать JPA 2.1 @Converter с объектами DB?

Так что теперь мне интересно, смогу ли я справиться с этим с реализацией @Converter (AttributeConverter), поскольку мне потребуется набор дочерних объектов для разрешить db-данные (строку) в (упорядоченном) списке дочерних объектов (т. е. реализации метода convertToEntityAttribute)? Или мне нужно полагаться на мой (немного громоздкий) механизм в классе POJO для преобразования между обеими сторонами ?

ответ

1

AttributeConverter предназначен только для простых типов, а не для коллекций/карт и, как таковой, обеспечивает отображение b между типом java и столбцом базы данных. Некоторые реализации JPA могут допускать сопоставление нескольких столбцов (я знаю, что реализация JPA, которую я использую, DataNucleus JPA и некоторые другие также могут ее разрешить), но я сомневаюсь, что вы получите тот, который полностью сопоставляет с другими таблицами.

Лучше смотреть на ваши отображения сущностей и рассмотреть вопрос о создании фиктивного субъекта этой информации каким-то образом

+0

Большое спасибо за разъяснения. Хорошо, тогда я в порядке с моим текущим рабочим решением;) (мне не нужен еще один объект ...) – zazi

Смежные вопросы