Я использую JPA в небольшом приложении, над которым я работаю. Теперь мне необходимо создать структуру данных, которая в основном расширяет или инкапсулирует объект структуры данных графа. График необходимо сохранить в базе данных.
Для персистентных объектов, которые я пишу сам, их очень легко расширять, а расширяющие классы также легко сохраняются. Однако теперь я хочу использовать библиотеку объектов, связанных с графами (узлы, ребра, простые графы, ориентированные графы и т. Д.), В библиотеке JGrahpT. Однако базовые классы не определены как постоянные объекты JPA, поэтому я не уверен, как получить эти классы для сохранения в базе данных.
У меня есть пара идей, и я хотел бы получить отзыв.
Вариант 1)
Используйте шаблон дизайна декоратора, чтобы добавить постоянство в расширенную версию базового класса.
Проблемы:
- Как мне сохранить частные поля класса, которые необходимы для его правильного состояния? Должен ли я просто расширить класс, добавить поле идентификатора и пометить его как постоянный? Как JPA получит необходимые поля из родительского класса? (Что-то вроде модификации класса среды исполнения ruby было бы здесь здорово)
- Существует иерархия классов (абстрактный граф, ориентированный граф, ориентированный взвешенный граф и т. Д.). Если я продолжу, чтобы получить постоянство, расширение классов все равно не будет иметь общий родительский класс. Как мне решить это? (Опять же, что-то вроде модификации класса среды исполнения ruby было бы здесь здорово)
Вариант 2) Скопируйте и вставьте всю базу кода. Измените исходный код каждого файла, чтобы сделать его совместимым с JPA.
- очевидно, это много работы
Я уверен, что есть другие варианты .. Что у тебя есть для меня ТАК ???