2015-12-30 2 views
0

Итак, у меня есть проект, в котором я получаю данные из десятка различных источников, некоторые из них являются объектами базы данных, чаще всего данные находятся в разных форматах JSON или часто в форматах XML. Поэтому мне нужно взять эти разрозненные данные и вытащить их в один единственный управляемый объект, который мы контролируем.Сопоставление данных с использованием базы данных в Java

Я видел десятки разных сообщений на различных инструментах, чтобы сделать объект для сопоставления объектов. Орика является одним из них и т. Д. Но проблема в том, что Орика, как и многие из них, по-прежнему нуждаются в твердых классах, определенных для отображения. Если есть изменение в сопоставлении, то я должен изменить свой класс, повторно зафиксировать его, затем выполнить сборку и развернуть новый код ... BTW, тестирование также нужно будет сделать, как и любое изменение кода. Таким образом, возможно, некоторые из этих инструментов не являются отличным решением для меня.

Тогда я искал какое-то сопоставление с базами данных, где у меня есть источник, поле, а затем новое поле или функция, к которой я хотел бы отнести это. Таким образом, с помощью инструмента, управляемого базой данных, я мог бы изменять поля в базе данных, и все будет работать так, как должно. Я всегда мог создать интерфейс для изменения этого инструмента.

Итак, с этим ... Я спрашиваю, есть ли какой-либо инструмент, управляемый базой данных, где я могу сопоставить поле с полем или поля с функциями типа сопоставления? Drools был моим первым выбором, но я не знаю, является ли это моим лучшим выбором? Может быть, это слишком много для моих нужд? Итак, я искал советы о том, что может быть лучшим инструментом для моего картографирования.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация от меня, и спасибо за помощь!

+0

Независимо от того, выполняется ли отображение через код приложения или через какой-либо инструмент, управляемый базой данных - необходимо провести итерацию QA, чтобы избежать любые потенциальные проблемы ввода данных. Лично внешний инструмент для этого с помощью базы данных просто создает технический долг, которого можно избежать с помощью собственного документального кода. – Naros

ответ

0

На самом деле Orika может обрабатывать динамический источник данных, например, есть пример того, как преобразовать из XML-элемента (DOM API) или даже JsonObject.

Вы можете использовать XML-анализатор для преобразования данных в объект Element, или Джексон, чтобы получить JSONObject

Затем определите вам карту класса между «каноническом» Java Class и этими динамическими «классами»

http://orika-mapper.github.io/orika-docs/advanced-mappings.html Настройка PropertyResolverStrategy

Ниже приведен пример отображения Orika в MongoDB DBObject в Java Bean https://gist.github.com/elaatifi/ade7321a1405c61ff8a9

Как когда-либо преобразование JSON более прямолинейно, чем XML (семантика атрибутов/дочерних/пользовательских тегов не совпадает с JavaBeans)

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