Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Инструмент динамического формирования запроса (как в СКД) для Java

Инструмент динамического формирования запроса (как в СКД) для Java
Я
   GANR
 
08.08.21 - 12:45
При просмотре 1С запроса (например, в консоли СКД), сформированного с применением настроек компоновки данных можно видеть, что отборы применились и к временным таблицам, и к итоговой таблице запроса. Предположим, есть запрос для Postgres, есть некий набор условий, логически похожий на отбор, который мы задаем в настройках компоновки данных.

Существует ли на Java нечто схожее по принципу действия?
   ДенисЧ
 
1 - 08.08.21 - 13:00
Hibernate?
а так - аналога нет. Жабисты брезгуют такими вещами.
   GANR
 
2 - 08.08.21 - 13:13
(1) Это ближе к CriteriaBuilder, но по-моему прям как СКД на вложенные запрос и временные таблицы он условия наложить не может. Это надо внутри библиотеки по сути запрос пропарсить и разложить его в объект и там, где надо условия вшить, а потом собрать обратно в запрос.
   Asmody
 
3 - 08.08.21 - 13:41
"Чтоб прям как в СКД" есть только в СКД.
https://querydsl.com/static/querydsl/4.4.0/reference/html_single/
   mistеr
 
4 - 08.08.21 - 13:41
(2) СКД не вставляет условия в запрос. Она генерирует запрос с учетом отборов.
   Asmody
 
5 - 08.08.21 - 13:42
Ещё пишут про jooq, но оно за деньги
   Конструктор1С
 
6 - 08.08.21 - 14:33
Так ведь в Java принято "собирать" текст запроса через Hibernate, по типу ручного сбора текста запроса в 1с через объектную модель СхемаЗапроса. Какие надо отборы, такие на лету и добавил
   GANR
 
7 - 08.08.21 - 15:13
(6) На входе у нас запрос текстом, строк эдак 400. Вот его надо в объектную модель вогнать и как-то добавить отборчики. Причем, чтобы работал быстро, надо не только на верхний уровень наложить отбор, но и на вложенные запросы. Правильно понимаю, что тут без рекурсивного обхода объектной модели запроса никак?
   GANR
 
8 - 08.08.21 - 15:15
Запрос имеет на входе параметр ИНН, допустим. И куча таблиц, из которых надо по нему фильтровать. Вот надо к каждому подзапросу фильтр добавить.

Список тем форума
 
Закон Брукера: Даже маленькая практика стоит большой теории.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.