|
|
|
Hibernate, Join не связанных напрямую таблиц.
|
|||
|---|---|---|---|
|
#18+
Имеются таблицы А и В ссылающиеся по внешнему ключу на таблицу С, но напрямую друг с другом не связанные. Вопрос.Можно ли в хибернейте сделать сложный запрос из этих двух таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 13:52:48 |
|
||
|
Hibernate, Join не связанных напрямую таблиц.
|
|||
|---|---|---|---|
|
#18+
Связь через общий FK с таблицей С ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 14:04:52 |
|
||
|
Hibernate, Join не связанных напрямую таблиц.
|
|||
|---|---|---|---|
|
#18+
Или проще сделать в обычном SQL? (Жаль редактировать сообщения нельзя) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 14:06:25 |
|
||
|
Hibernate, Join не связанных напрямую таблиц.
|
|||
|---|---|---|---|
|
#18+
В хибернейта запрос можно сделать 3мя способами HQL, Criteria API и SQL (можно ещё JPLQ но, по логике, этот тот же HQL) Так вот в HQL и Criteria API можно сделать запрос, только если вы эти сущности свяжете через ассоциацию в коде (например ManyToMay + JoinTable) В SQL можете и без ассоциации сущностей. Хибер умеет и из SQL сущности собрать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 14:22:21 |
|
||
|
Hibernate, Join не связанных напрямую таблиц.
|
|||
|---|---|---|---|
|
#18+
Лично мое мнение, что и HQL и Criteria - это конечно с первого взгляда круто, но практически трудноприменимо, за исключением редких случаев. Предполагалось что HQL должен упростить написание запросов и придать им гипотетическую переносимость между базами, а в итоге получается что я имея опыт на SQL, должен изучить еще один диалект и по каждой мелочи лазить в гугл с запросами "как сделать having в hql " и т.п чтобы не ошибится(ни разу не получилось написать запрос с первого раза). С другой стороны я всегда предварительно тестирую запрос на СУБД во время разработки и не вижу никакого бенефита по его переводу на hql. Так что мое скромное ИМХО - Hql рулит для CRUD ну и еще может простецкий join по коллекции, все остальные запросы - нативный sql + result Transformer - гораздо проще, быстрее и понятнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 14:29:19 |
|
||
|
Hibernate, Join не связанных напрямую таблиц.
|
|||
|---|---|---|---|
|
#18+
забыл ник, +1 правда, ты покусился на святое - на ОРМ :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 14:41:46 |
|
||
|
Hibernate, Join не связанных напрямую таблиц.
|
|||
|---|---|---|---|
|
#18+
Petro123забыл ник, +1 правда, ты покусился на святое - на ОРМ :) Неправда) ОРМ подразумевает под собой маппинг между реляционной моделью и объектной - чем я и стараюсь пользоваться, оба подхода(basic CRUD и SQL+transformer) - именно это и делают, другое дело что оптимизации типа First-level cache и т.п. во втором случае- идут лесом - это да, но это по моему мнению к ОРМ прямого отношения не имеет, это фича хибернейта, да и по практике - если ты спустился до написания nativeSql - это уже значит, что запрос нетривиальный, и скорее всего кэшировать что-то не имеет особого смысла, так что наш подход вобрал в себя лучшее из двух миров. Хотя, повторюсь, это лишь мое мнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 14:59:02 |
|
||
|
Hibernate, Join не связанных напрямую таблиц.
|
|||
|---|---|---|---|
|
#18+
Угу в итоге решил проблему Native запросом.Просто весь проект крутится на hql и одинокий Native запрос смотрится как-то странно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 15:10:12 |
|
||
|
Hibernate, Join не связанных напрямую таблиц.
|
|||
|---|---|---|---|
|
#18+
C4Et4uKУгу в итоге решил проблему Native запросом.Просто весь проект крутится на hql и одинокий Native запрос смотрится как-то странно) а так Код: java 1. ну или как то так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 15:13:31 |
|
||
|
Hibernate, Join не связанных напрямую таблиц.
|
|||
|---|---|---|---|
|
#18+
Michael PonomarevC4Et4uKУгу в итоге решил проблему Native запросом.Просто весь проект крутится на hql и одинокий Native запрос смотрится как-то странно) а так Код: java 1. ну или как то так точнее select a, b from A a, B b where a.c.id = b.c.id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 15:14:46 |
|
||
|
Hibernate, Join не связанных напрямую таблиц.
|
|||
|---|---|---|---|
|
#18+
Получается запрос к 3ем таблицам?Таблицы сильно не маленькие... Или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 17:23:51 |
|
||
|
Hibernate, Join не связанных напрямую таблиц.
|
|||
|---|---|---|---|
|
#18+
C4Et4uK, Сложно сказать сколько таблиц будет участвовать в выборке, твоих сущностей никто не видел А сколько сейчас таблиц в нативном запросе ? И что индексов по FK нет что ли ? Ты бы привел код сущностей и нативного запроса в студию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2012, 19:40:04 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37771312&tid=2131921]: |
0ms |
get settings: |
14ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 327ms |
| total: | 463ms |

| 0 / 0 |
