powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate, Join не связанных напрямую таблиц.
12 сообщений из 12, страница 1 из 1
Hibernate, Join не связанных напрямую таблиц.
    #37770486
C4Et4uK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеются таблицы А и В ссылающиеся по внешнему ключу на таблицу С, но напрямую друг с другом не связанные.
Вопрос.Можно ли в хибернейте сделать сложный запрос из этих двух таблиц?
...
Рейтинг: 0 / 0
Hibernate, Join не связанных напрямую таблиц.
    #37770516
C4Et4uK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Связь через общий FK с таблицей С
...
Рейтинг: 0 / 0
Hibernate, Join не связанных напрямую таблиц.
    #37770519
C4Et4uK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или проще сделать в обычном SQL?
(Жаль редактировать сообщения нельзя)
...
Рейтинг: 0 / 0
Hibernate, Join не связанных напрямую таблиц.
    #37770561
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В хибернейта запрос можно сделать 3мя способами
HQL, Criteria API и SQL (можно ещё JPLQ но, по логике, этот тот же HQL)
Так вот в HQL и Criteria API можно сделать запрос, только если вы эти сущности свяжете через ассоциацию в коде (например ManyToMay + JoinTable)
В SQL можете и без ассоциации сущностей. Хибер умеет и из SQL сущности собрать.
...
Рейтинг: 0 / 0
Hibernate, Join не связанных напрямую таблиц.
    #37770585
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично мое мнение, что и HQL и Criteria - это конечно с первого взгляда круто, но практически трудноприменимо, за исключением редких случаев. Предполагалось что HQL должен упростить написание запросов и придать им гипотетическую переносимость между базами, а в итоге получается что я имея опыт на SQL, должен изучить еще один диалект и по каждой мелочи лазить в гугл с запросами "как сделать having в hql " и т.п чтобы не ошибится(ни разу не получилось написать запрос с первого раза). С другой стороны я всегда предварительно тестирую запрос на СУБД во время разработки и не вижу никакого бенефита по его переводу на hql.
Так что мое скромное ИМХО - Hql рулит для CRUD ну и еще может простецкий join по коллекции, все остальные запросы - нативный sql + result Transformer - гораздо проще, быстрее и понятнее.
...
Рейтинг: 0 / 0
Hibernate, Join не связанных напрямую таблиц.
    #37770622
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,
+1
правда, ты покусился на святое - на ОРМ :)
...
Рейтинг: 0 / 0
Hibernate, Join не связанных напрямую таблиц.
    #37770675
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123забыл ник,
+1
правда, ты покусился на святое - на ОРМ :)

Неправда) ОРМ подразумевает под собой маппинг между реляционной моделью и объектной - чем я и стараюсь пользоваться, оба подхода(basic CRUD и SQL+transformer) - именно это и делают, другое дело что оптимизации типа First-level cache и т.п. во втором случае- идут лесом - это да, но это по моему мнению к ОРМ прямого отношения не имеет, это фича хибернейта, да и по практике - если ты спустился до написания nativeSql - это уже значит, что запрос нетривиальный, и скорее всего кэшировать что-то не имеет особого смысла, так что наш подход вобрал в себя лучшее из двух миров. Хотя, повторюсь, это лишь мое мнение.
...
Рейтинг: 0 / 0
Hibernate, Join не связанных напрямую таблиц.
    #37770728
C4Et4uK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Угу в итоге решил проблему Native запросом.Просто весь проект крутится на hql и одинокий Native запрос смотрится как-то странно)
...
Рейтинг: 0 / 0
Hibernate, Join не связанных напрямую таблиц.
    #37770738
Michael Ponomarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C4Et4uKУгу в итоге решил проблему Native запросом.Просто весь проект крутится на hql и одинокий Native запрос смотрится как-то странно)
а так
Код: java
1.
select a, b from A a B b C c where a.c.id = b.c.id


ну или как то так
...
Рейтинг: 0 / 0
Hibernate, Join не связанных напрямую таблиц.
    #37770745
Michael Ponomarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael PonomarevC4Et4uKУгу в итоге решил проблему Native запросом.Просто весь проект крутится на hql и одинокий Native запрос смотрится как-то странно)
а так
Код: java
1.
select a, b from A a B b C c where a.c.id = b.c.id


ну или как то так

точнее

select a, b from A a, B b where a.c.id = b.c.id
...
Рейтинг: 0 / 0
Hibernate, Join не связанных напрямую таблиц.
    #37771104
C4Et4uK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается запрос к 3ем таблицам?Таблицы сильно не маленькие...
Или я не прав?
...
Рейтинг: 0 / 0
Hibernate, Join не связанных напрямую таблиц.
    #37771312
Michael Ponomarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C4Et4uK,

Сложно сказать сколько таблиц будет участвовать в выборке, твоих сущностей никто не видел
А сколько сейчас таблиц в нативном запросе ?
И что индексов по FK нет что ли ?

Ты бы привел код сущностей и нативного запроса в студию
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate, Join не связанных напрямую таблиц.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]