В настоящее время я работаю над проектом, который должен поддерживать какой-либо объект (из которого у нас нет никакого контроля), чтобы впоследствии эти объекты могли быть восстановлены.
Мы не можем реализовать ORM, потому что мы не можем ограничить пользователей нашей библиотеки во время разработки.
Наша первая альтернатива заключалась в сериализации его с сериализацией по умолчанию Java, но у нас было много проблем с восстановлением объектов, когда пользователи начали передавать разные версии одного и того же объекта (атрибуты меняли типы, имена и т.д.).
Мы пробовали с классом XMLEncoder (преобразовываем объект в XML), но мы обнаружили, что существует недостаток функциональности (например, не поддерживает Enums).
Наконец, мы также попробовали JAXB, но это навязывает нашим пользователям аннотирование их классов.
Любая хорошая альтернатива?