Size: a a a

2020 April 08

RG

Roman Golubkov in Java & Co
Роман Нагаев
всем привет есть вопрос по ETL, задача:

1. получить из апи объекты поставщика
2. получить из базы свои объекты
3. сопоставляя свои объекты и объекты поставщика выполнить обновление своих объектов

проблема в том что структура данных в базе сложная и немного денормализованная, кроме того есть рекурсивнаые зависимости. вопрос, есть ли нормальный способ не запутаться в ссылочной целостности при обработке?

я уже задавал подобный вопрос в чатике архитекторов и там мне сказали что такая штука называется ETL и посоветовали например Apache Camel, но я не смог найти способ применить его чтобы упростить управление сыылками в сущностях.

может существуют какие-нибудь подходы или паттерны для этого?

стек: java, spring boot + hibernate

при попытке что то сделать я тону в сложности и количестве вариантов для обработки
если поставщик отдает безусловно все (в смысле что без вариантов если не передал - то оставить как было) - то имхо проще описание вынести отдельно - убить - принять все их
источник

M

Max in Java & Co
FastColor
Оператор switch — проверяет переменную на равенство в отношении списка значений. Каждое значение называется case, и переменная переключаясь проверяется для каждого case.
Откуда определение?
источник

M

Max in Java & Co
FastColor
Оператор switch — проверяет переменную на равенство в отношении списка значений. Каждое значение называется case, и переменная переключаясь проверяется для каждого case.
Проверяет для каждого кейс, пока не найдет подходящий
источник

F

FastColor in Java & Co
сайт proglang su
источник

i

infinity in Java & Co
Max
Проверяет для каждого кейс, пока не найдет подходящий
нет же)
источник

M

Max in Java & Co
infinity
нет же)
Поясни
источник

i

infinity in Java & Co
Max
Поясни
если break; не ставить будет идти и по остальным кейсам
источник

M

Max in Java & Co
infinity
если break; не ставить будет идти и по остальным кейсам
Об этом написали выше, это лишь дополнение к моим словам
источник

M

Max in Java & Co
И, кстати, оператор не будет проверять, если не ставить break, в таком случае будет идти, пока не встретит остановку
источник

E

Em. in Java & Co
FastColor
Оператор switch — проверяет переменную на равенство в отношении списка значений. Каждое значение называется case, и переменная переключаясь проверяется для каждого case.
Я тебе скажу одно, break.
Поставь его после "...println("a");..." Запусти код, и посмотри результат. И получишь ответ на твой вопрос.
источник

E

Em. in Java & Co
Почитай про break. Лучше всего в нормальном источнике, например из FAQ, или Шилдта.
источник

i

infinity in Java & Co
Em.
Я тебе скажу одно, break.
Поставь его после "...println("a");..." Запусти код, и посмотри результат. И получишь ответ на твой вопрос.
он судя по всему хочет понять логику работы свича, а не достичь желаемого результата
источник

F

FastColor in Java & Co
infinity
он судя по всему хочет понять логику работы свича, а не достичь желаемого результата
Вот именно. Смотри. В switch есть default, который нужен, если ни один case не выполняется. Почему тогда при отсутствии break выполняются все case независимо от значения в case? Ведь переменная switch сравнивается со значением в каждом case или я неправильно что-то понял?
источник

i

infinity in Java & Co
FastColor
Вот именно. Смотри. В switch есть default, который нужен, если ни один case не выполняется. Почему тогда при отсутствии break выполняются все case независимо от значения в case? Ведь переменная switch сравнивается со значением в каждом case или я неправильно что-то понял?
если честно - не имею ни малейшего понятия) но могу предположить, что когда в один кейс зашёл то дальше идёшь по телам остальных кейсов, без проверок пока не встретишь break (это не точно, лучше спросить у гугла)
источник

F

FastColor in Java & Co
infinity
если честно - не имею ни малейшего понятия) но могу предположить, что когда в один кейс зашёл то дальше идёшь по телам остальных кейсов, без проверок пока не встретишь break (это не точно, лучше спросить у гугла)
вооот, теперь начинаю понимать. Спасибо!
источник

~

~ MainTail ~ in Java & Co
infinity
если честно - не имею ни малейшего понятия) но могу предположить, что когда в один кейс зашёл то дальше идёшь по телам остальных кейсов, без проверок пока не встретишь break (это не точно, лучше спросить у гугла)
+
Почему и свичем заменяют очень мого условий if-else
источник

РН

Роман Нагаев in Java & Co
Roman Golubkov
если поставщик отдает безусловно все (в смысле что без вариантов если не передал - то оставить как было) - то имхо проще описание вынести отдельно - убить - принять все их
проблема в том что поставщик отдаёт не всё а отдельный объекты структуры, и кроме того на эти объекты могут ссылаться другие объекты
источник

E

Em. in Java & Co
FastColor
Вот именно. Смотри. В switch есть default, который нужен, если ни один case не выполняется. Почему тогда при отсутствии break выполняются все case независимо от значения в case? Ведь переменная switch сравнивается со значением в каждом case или я неправильно что-то понял?
Потому что break одна из точек выхода из switch. Пока по лесенке не достигнешь его, можешь по "лесенке" выполнять хоть 100 кейсов.
источник

RG

Roman Golubkov in Java & Co
Роман Нагаев
проблема в том что поставщик отдаёт не всё а отдельный объекты структуры, и кроме того на эти объекты могут ссылаться другие объекты
может и говоно - но вынеси то что отдает отдельно - оставь в покое то на что ссылаются остальное (id) и то что вынес - мерджни с их описания
источник

НК

Николай Клятышев in Java & Co
Народ, всем привет. Вопрос по БД. Нужно выбрать все незалоченные записи, отсортировать их по времени и выбрать 1 строку.
Никак не могу подружить for update skip locked и order by
Вот такой запрос дает ошибку ORA-00907: отсутствует правая скобка
источник