|
|
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНапример вам нужно делать большую выборку из десятка таблиц. Hibernate позволяет очень простыми средствами менять структуру запроса на JOIN-ы либо подзапросы. И даже позволяет это делать динамически. Разработка такой же задачи на pure SQL может занимать несколько дней. Приходится таскать несколько SQL запросов для одних и тех же таблиц в зависимости от того где они нужны. Решить N+1 через JOIN - перепистаь запрос почти с нуля. Оптимизировать JOIN через 2-3 отдельных запроса - переписать запрос почти с нуля. С Hibernate тоже самое делается в течении часа-двух. ну не знаю я бы вынес сложный запрос в функцию а потом бы менял функцию не влазя в клиентское приложение не совсем понял что это за запрос такой "N+1 через JOIN" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 14:41:08 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
HOME_XПример - описал функцию с взаимодействием обьектов выложил на сервер. Один раз обратился - передал параметры - получил результат. Т.е. теряю гибкость и оператвиность в разработке ? Слова знакомые, но я в упор не понимаю в чем суть вопроса? Какая гибкость? Какие функции? HOME_XВ Hibernate - это описание отдельных классов. сколько обращений будет при выполнении запроса Это о чем вообще? HOME_XТ.е. сколько получться классов -сколько будет и обращений к серверу БД ? Верно понимаю ? Это бред какой-то. Классы отдельно, "обращения к серверу БД" отдельно. Какая между ними связь вообще? О каких вообще "обращениях" речь? SQL запросы? DDL запросы? SELECT выборки? HOME_XОбращанию внимание что описать архитектуру базы сразу вряд-ли возможно. Задача описания и ведения версий структуры БД решается отдельными инструментами. Например liquibase. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 14:41:19 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
MasterZivНадо, надо. К тому же весь этот кэш множится на 1/N, где N -- кол-во приложений (систем), работающих с БД. А кэш БД -- он для всех. Да я-то знаю. Просто здесь есть любители заявить что RDBMS всё прокеширует - другого не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 14:42:24 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz...Разработка такой же задачи на pure SQL может занимать несколько дней. Приходится таскать несколько SQL запросов для одних и тех же таблиц в зависимости от того где они нужны... Вот, ещё один "джедай". Вы, вообще, в курсе, что приложение на яве написаное во много раз дешевле, чем БД с процедурами, функциями и триггерами, которые не только в яве будут работать, но и в делфях, сях, и т.д. и т.п.? От явы только гуй требуется, которому цена - грош. База - совсем другое дело. Поэтому, когда мне говорят про ормы, или про перенос с одной платформы (с одной БД на другую) на другую - я хватаюсь за пистолет. ПС. А насчёт масштабируемости - нефиг трындеть! Масштабируемость или решается средствами сервера SQL, или вообще никак не решается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 14:49:16 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
GaraZну не знаю я бы вынес сложный запрос в функцию Это можно только если у вас запрос живет совершенно отдельно от структуры. Но зачастую получается и так, что меняя запрос вам придется менять и структуру. Так как это может группа запросов, например. GaraZне совсем понял что это за запрос такой "N+1 через JOIN" Это сложно объяснить на одной ассоциации. Проблема становиться явной, когда их несколько. Есть Teacher, у него много Students. У Students ещё несколько ассоциаций. ТЗ у вас динамичное и в какой-то момент времени, вы обнаруживаете, что загружая одним запросом Teacher+Students, вы потом делаете N запросов чтобы догрузить детали Students. Обратите внимание, что это вообще может нарисоваться на уровне бизнес-логике, а не на доступе к данным. Чтобы решить проблему N+1 запроса вам нужно написать новый JOIN, с догрузкой новых деталей по всем Students of a Teacher. В Hibernate - нового запроса не нужно. Указали что хотите в нужном месте читать с JOIN-ом - получили. Не меняя при этом структуры существующего запроса и логики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 14:49:42 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
ShSergeВот, ещё один "джедай". Это слово оскорбительное, попрошу его ко мне не применять. ShSergeВы, вообще, в курсе, что приложение на яве написаное во много раз дешевле, чем БД с процедурами, функциями и триггерами, Как бе в курсе. Разработка на Javа дешевле разработки на других платформах. Для кого-то разве это ещё секрет? ShSergeкоторые не только в яве будут работать, но и в делфях, сях, и т.д. и т.п.? Ну, это аналогично заявленияв выше что Hibernate будет работать и на Oracle и на MySQL, поэтому он лучше. Никакого отношения к вопросу не имеет. Interop решается разными средствами. БД не единственное. ShSergeОт явы только гуй требуется, которому цена - грош. Какой нафиг гуй? Кто в здравом уме делает гуй на Java? ShSergeБаза - совсем другое дело. Ещё бы. Только к чему это? ShSergeПоэтому, когда мне говорят про ормы, или про перенос с одной платформы (с одной БД на другую) на другую - я хватаюсь за пистолет. Нервы ни к черту, или почему хватаешься? ShSergeПС. А насчёт масштабируемости - нефиг трындеть! Масштабируемость или решается средствами сервера SQL, или вообще никак не решается. ROFL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 14:54:10 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Вы мой пост прочитайте несколько внимательнее, или замолчите со своим рофлом. Я позволил себе ответить на Ваш пост? Это что Вас так задело? :) Таки, я придерживаюсь своего мнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:23:44 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
ShSergeВы мой пост прочитайте несколько внимательнее, или замолчите со своим рофлом. Да, я тут всё время делаю то что велят. ShSerge"джедай". Вы, вообще, в курсе ... цена - грош. ...я хватаюсь за пистолет. ... нефиг трындеть... Это что Вас так задело? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:34:52 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Если в java проекте основная логика в хранимках, то это не java проект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:36:11 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЧтобы решить проблему N+1 запроса вам нужно написать новый JOIN, с догрузкой новых деталей по всем Students of a Teacher. В Hibernate - нового запроса не нужно. Указали что хотите в нужном месте читать с JOIN-ом - получили. Не меняя при этом структуры существующего запроса и логики. но вы же всеравно должны описать какие доп атрибуты хотите получить какая разница делать это на уровне запроса или на уровне Hibernate На счет масштабируемости по большему счету согласен с ShSerge если будуте решать проблему масштабируемости только на уровне прикладного языка рано или поздно упретесь в базу (но это может быть не единственная проблема) чем нагруженее проект тем раньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:39:35 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Недавно коллегам пришлось отказаться от использования гибернета, слишком много ограничений для БД. Например, если данные не преведены в 3 форму то все пропало :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:41:17 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
ЛагманЕсли в java проекте основная логика в хранимках, то это не java проект. Я надеюсь вас не удивляет что в БД бывают еще и триггеры в которых тоже инкапсулирована логика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:47:22 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
mayton, Это было замечение для ShSerge ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:49:52 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
ОК ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:50:29 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
GaraZесли будуте решать проблему масштабируемости только на уровне прикладного языка рано или поздно упретесь в базу (но это может быть не единственная проблема) Если будете смотреть на БД как на черный ящик то проблема производительности станет перманентной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:52:15 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Lecter, Не стоит излишне экстраполировать. Не стоит применять технологию низкого уровня (коей по сути является hibernate) в роли основной технологии приложения. На БД нужно смотреть как на черный ящик, пока это не вызывает проблем производительности. Когда наступают проблемы, вы меняете реализацию доступа к БД, в конкретном проблемном месте, если не завязалиьс по хардкору на hibernate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:55:52 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Lecter, ну я о том же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:55:54 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
GaraZно вы же всеравно должны описать какие доп атрибуты хотите получить какая разница делать это на уровне запроса или на уровне Hibernate "Доп атрибуты" прописаны в маппинге и ими управлять нет смысла. А вот "доп ассоциации" они у каждого запроса разные и в то время когда на SQL требует отдельного запроса (набора запросов) на каждый сценарий, где одни и те же ассоциации нужны в разных комбинациях, в Hibernate достаточно использовать FetchMode чтобы указать какие ассоциации каким образом грузить. GaraZНа счет масштабируемости по большему счету согласен с ShSerge Если основную логику реализовать на Java, то масштабирование БД перестанет быть проблемой. Во-первых это тупое хранилище, которое проще масштабировать. Во-вторых нагрузка перемещается на Java и минимизируется на уровне БД, за счет чего надобность в масштабировании БД возникает гораздо позже. GaraZесли будуте решать проблему масштабируемости только на уровне прикладного языка рано или поздно упретесь в базу (но это может быть не единственная проблема) чем нагруженее проект тем раньше Тема в очередной раз показывает что программисты слишком много уделяют внимания производительности, забывая о других важных факторах успешного ПО. Дело в том что пока вы пишете свой highload сервер, для юзеров, которых у вас нет, ваши конкуренты экономят человеко-месяцы разработки путём использования ORM и выходят на рынок раньше. И когда у них настанет проблема 10K, они уже заработают достаточно финансов для её решения и при этом наработают огромный knowledge base по узким местам системы, чтобы направить ресурсы именно на решение актуальных проблем. А вы в только к этому моменту будете запускать свой highload сервер с чудесной масштабируемостью, которые нафиг никому не нужны. Ведь все юзеры уже у конкурента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:55:54 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczMasterZivНадо, надо. К тому же весь этот кэш множится на 1/N, где N -- кол-во приложений (систем), работающих с БД. А кэш БД -- он для всех. Да я-то знаю. Просто здесь есть любители заявить что RDBMS всё прокеширует - другого не надо. Я бы присоединился к этим любителям... Конечно, без "другого не надо"... Всё IT по сути строится на индексах и кэшировании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:57:27 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
LecterНедавно коллегам пришлось отказаться от использования гибернета, слишком много ограничений для БД. Например, если данные не преведены в 3 форму то все пропало :) Недавно это лет 10 назад? Hibernate 2 не умел работать с ненормализоваными структурами. Поэтому основной задачей Hibernate 3 было адоптация возможностей маппинга под любые legacy БД. Возможно ваши коллеги больше используют табличные данные, чем сложные графы ассоциаций. Тогда выбор ORM, естественно был ошибкой. ORM это способ хранить объекты в RDB, а не спосособ представлять RDB в виде объектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 15:59:39 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
LecterНедавно коллегам пришлось отказаться от использования гибернета, слишком много ограничений для БД. Например, если данные не преведены в 3 форму то все пропало :) Ну, это правильные ограничения. Я кстати когда Hiber изучал, был удивлён, на сколько тонко его авторы понимают сущность разработки структуры РБД. Так что они большие молодцы, они не делали ни одного лишнего ограничения. В хибере вообще нет ни одной кривулины в идеологии. Так что всё правильно. Либо ты играешь по правилам нормального разработчика РБД, либо ты не используешь Hiber. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 16:04:05 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЕсли основную логику реализовать на Java, то масштабирование БД перестанет быть проблемой. Во-первых это тупое хранилище, которое проще масштабировать. все дальше читать не смог извини я как человек несколько лет разрабатывающий на oracle и участвующий в проектах, которые требуют высокой производительности, с этим категорически не согласен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 16:06:43 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
GaraZя как человек несколько лет разрабатывающий на oracle Дальше можно не читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 16:09:01 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, дочитал )) по поводу скорости разработки я с вами согласен но со скоростью тоже не стоит сильно увлекатся как бы решая потом проблемы узких мест не пришлось переписывать половину проекта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 16:10:35 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Недавно это 2 месяца назад. Я не принимал участие в этом проекте, посему точно не смогу ответить что именно их не устроило. Но проблема именно в том что гибернет не смог работать с уже существующей базой. MasterZivНу, это правильные ограничения. Тонкости РБД? 3 закона нормализации? Это по вашему тонкости? Или завязка НАПРЯМУЮ на таблицы это верное решение? Если да то это пять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 16:14:11 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38443742&tid=2128278]: |
0ms |
get settings: |
9ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
219ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 575ms |

| 0 / 0 |
