сопоставление / конфиг для шаблона JDBC и оракула - PullRequest
0 голосов
/ 20 ноября 2019

У меня есть огромная денормализованная таблица «product» в Oracle с сотнями столбцов. Есть несколько продуктов. Не все столбцы применяются для каждого продукта. Те столбцы, которые не применяются к определенной строке / продукту, имеют значение NULL в таблице. Мне нужно создать сопоставление между названием продукта и столбца. Я использую шаблон Jdbc и весеннюю загрузку. Я строю микросервис. Если пользователь указывает конкретный продукт в качестве параметра запроса, должны быть возвращены столбцы, которые относятся только к конкретному продукту.

Есть идеи, как мне поступить?

Спасибо, что уделили время.

1 Ответ

0 голосов
/ 21 ноября 2019

Короткий ответ невозможен с jdbctemplate, если вы не создадите запрос, добавляющий имена столбцов вручную.

Если вы используете Hibernate / JPA, вы можете использовать критерий запроса, предполагая, что у вас есть несколько отдельных POJOS длякаждый конкретный тип продукта и POJO для денормализованного типа.

CriteriaQuery<T> cq = builder.createQuery(SpecificProduct.class);
// write the Root, Path elements as usual
Root<EntityClazz> root = cq.from(EntityClazz.class);
cq.multiselect(root.get(EntityClazz_.COL1), root.get(EntityClazz_.COL2));  //using metamodel
List<T> result = em.createQuery(cq).getResultList() 

См. аналогичный ответ здесь

...