2014-11-23 3 views
0

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

Вопрос в том, как я могу это сделать без указания элементов заголовка в sql один за другим?

Есть ли встроенное решение для этой проблемы, которое могло бы принять изменения при добавлении новых элементов заголовка в заголовок сообщения?

ответ

0

Чтобы быть честным, такого решения нет, потому что с РСУБД есть узкое место schema. Даже если бы мы могли сделать что-то вроде этого:

insert into headers value (:headers) 

Мы должны указать любой новый столбец в целевой таблице БД.

Именно поэтому любая база данных NOSQL лучше для этого случая. Например. MongoDb может просто принять целое Message и сохраняет его на Document со всеми заголовками.

Даже если мы можем Spring Integration сценарий сделать с JPA адаптеров просто использовать <jpa:outbound-channel-adapter>, где сообщение payload является entity для нашего заголовка, мы должны добавить новое свойство к entity, чтобы позволить JPA, чтобы получить сделку с ними.

Однако, я думаю, что new columns in DB не собственной эмиссии для вашего, а с другой стороны MessageHeader является Map, так что вы можете перебирать свои записи и построить INSERT INTO... заявление во время выполнения для каждого сообщения.

Надеюсь, что-то не пропустил ...

+0

Спасибо за ответ. Я надеялся, что есть и другие решения. Теперь я знаю, что рабочее решение onyl состоит в том, чтобы взаимодействовать через элементы заголовка и сохранять их в db. Недостатком этого решения является то, что вам нужно написать свой собственный Java-код, чтобы сделать это, и нет встроенного решения для этой проблемы. –

+0

M-m-m. Знаете ли вы аналогичное решение для чего-то другого, а не нашего «Карты» с заголовками? –

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