Змінюй хід війни! Допомагай ЗСУ!

Блядский гибернейт (тот что в джаве)

🟢 10:40 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
Статус: Offline
Реєстрація: 11.02.2007
Повідом.: 7286
  • 🟢 10:40 Відбій тривоги в м. Харків та Харківська територіальна громада.Слідкуйте за подальшими повідомленнями.#м_Харків_та_Харківська_територіальна_громада
  • #1
Сабж.

Есть табличка вида (id, name).
Есть задача сделать джойн таблицы с самой собой:
select a.id mmm, b.id sss, a.name from MyTable a join MyTable b on (a.id<>b.id)
(понятно что реальная задача гораздо сложнее)

Мускуль выполняет такой запрос отлично.
А вот сабж... Засовываю ему вышеприведенный запрос в createNativeSQL и делаю getResultList().
Запрос физически выполняется - видно по монитору мускуля. А вот на этапе выковыривания гибернейтом данных пишет "Column 'id' not found". То есть гибернейт не вкуривает алиасы колонок.

Если я делаю выборку колонки id без алиасов:
select a.id, b.id, a.name from MyTable a join MyTable b on (a.id<>b.id)
то ошибка не выдается. Однако в результатах в нулевом и первом по счету объектах строки (куда должны загрузиться данные первой и второй по счету колонок резалтсета) оказывается значение ПЕРВОЙ колонки. Это кагбе объяснимо - выковыривание идет по имени колонки. Однако нахер мне не нужно.

Внимание вопрос: как сделать так, чтобы и запрос выполнялся и результаты правильно грузились?
ЗЫЖ Вариант вложенных селектов не предлагать - там огромные объемы данных...
ЗЗЫЖ Ненавижу эти фреймворки :(



Всем спасибо, вопрос решился при помощи НЁХ под названием @SqlResultSetMapping

ЗЫЖ Не один я в Инете матерно ругаюсь на гениальные решения по выковыриванию колонок по мета-данным ДжДБЦ вместо реальных имен колонок из резалтсета.
ЗЗЫЖ И вообще какого хера по имени, а не позиционно?
 
Останнє редагування:
Назад
Зверху Знизу