|
|
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Доброго дня господа ! Работаю по статье http://habrahabr.ru/post/29694/ Не совсем понимаю сущности вещей - поясните пожалуйста ! На стороне сервер БД сделан набор таблиц на стороне вызова(web-application) описаны эти таблицы много/подробно/основательно (каждая таблица представлена классом) Библиотека hibernate - определяет взаимодействие между этими классами, их изменение и т.д. В чем преймущества и прелести такой концепции ? За данные отвечает сервер, в крайнем случае можно описать процедуру на сервере - по взаимодействию Зачем такие сложности на стороне Application ? Заранее благодарен ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 00:09:10 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
HOME_X, сила в том, чтобы абстрагироваться от табличек и работать с объектами. Это удобно.(гугли ORM) есть средства по получения из классов табличек и наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 00:36:10 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
redwhite90, Так это нужно целяком переписать архитектуру хранилища данных при том что производительность и быстродействие запросов наверняка пострадает ... (если взаимодействие и связи определять на уровне приложения) Верно ли понимаю ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 00:45:57 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
HOME_X, т.е. кода, ошибок время на тестирование будет втрое больше а при изменении структуры - дублируй текст обьекта ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 00:48:35 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Для меня ОРМ - прежде всего возможность валидировать код во время разработки, а не исполнения. Ну и обновление клиентскоого кода при изненениях сущностей. БД. Если-же все sql-стейтменты обрамить кавычками, как обычно делается без ОРМ-а, то управление кода на клиенте возможно только ручное. И о проблемах вы узнаете только в рантайме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 00:49:21 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Relic Hunterклиенте возможно только ручное А тот факт что вручную Вы делаете изменение Application кода - Вас не смущает ? Это не одно и тоже по обьему ? И достигается ли при это оптимальность при работе в базой и каким образом это достигаеться ? P.S. все просмотры и изменения данных делаю на стороне базы через процедурный код (представление, пакетные функции и т.д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 01:06:39 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
redwhite90гугли ORM Суть понятна - спасибо ! Классически проблемы ORM - есть и остались. Все старался решать на уровне базы - от клиента шли исключительно вызову . redwhite90есть средства по получения из классов табличек и наоборот. Дайте пожалуйста пару ссылок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 01:22:13 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Хз что хорошего в hibernate. Для примитивных объектов и узких случаев с небольшим кол-вом связанных записей в отношениях, ещё более менее ок. Как только начинается пагинация, обработка записей тыщами, так начинаются костыли и проблемы с производительностью. По-моему лучше spring jdbc template с колбеками так до сих пор ничего и не придумали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 04:27:27 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
redwhite90HOME_X, сила в том, чтобы абстрагироваться от табличек и работать с объектами. Это удобно.(гугли ORM) есть средства по получения из классов табличек и наоборот. Нет, это неудобно. А сила в том, чтобы не писать кучу запросов с их обработкой, запросов на вставку и изменение. И в том, что автоматом получается кроссбазаданность. Запросы на сложные выборки на хибере писать неудобно, не смотря на все их HQL. Тут у хибера слабость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 09:11:39 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
MasterZivполучается кроссбазаданность. Да -согласен ! Спасибо за диалог господа ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 14:45:24 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
redwhite90есть средства по получения из классов табличек и наоборот. Дайте пожалуйста пару ссылок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 14:46:33 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
HOME_X, тут http://techblog.bozho.net/?p=935 описано как вручную выгрузить скрипт, который можно исполнить если надо просто получить базу данных, соответствующую маппингу, то читать тут(есть такое свойство hbm2ddl.auto - у него разные значения могут быть - почитайте): http://stackoverflow.com/questions/438146/hibernate-hbm2ddl-auto-possible-values-and-what-they-do тут написано как из бд получить классы(сам не пробовал, но от окружающих слышал, что работает) http://www.wikihow.com/Generate-Hibernate-Pojo-Classes-from-DB-Tables ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 15:12:35 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
а это про слабости hibernate http://stackoverflow.com/questions/1607819/weaknesses-of-hibernate смысл примерно в том, что если правильно им пользоваться, то всё будет работать лучше, чем используя jdbc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 15:15:07 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
http://www.mkyong.com/hibernate/how-to-generate-code-with-hibernate-tools/ тут лучше написано как из готовой бд получить классы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 15:25:32 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Hibernate - это один из взглядов на кодинг. От объектов к БД. Но иногда разработчик поставлен в другие условия. Заказчик требует чтобы интеграция и развитие шло "от БД к Объектам". И новые объекты разработчик не создаёт в схеме БД. И при этом БД может оперировать сущностями которые трудно или тяжело отображаются в объекты ORM. В частности в БД могут быть Types, Stored procedures, Functions, Multitable Views с instead of триггером e.t.c. И разработчик вынужден подстраиваться под меняющуюся схему в БД. В этом случае разумнее взять MyBatis. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2013, 20:31:39 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Сам я только недавно начал изучать java у меня сложилось впечатление, что Hibernate уместно использовать тогда когда нужно получить независимость от БД. и когда разбиратся с тонкостями конкретной БД нет времени или желания особо я преимуществ не вижу пока. хотя может пока просто не вник )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 13:15:23 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
GaraZСам я только недавно начал изучать java у меня сложилось впечатление, что Hibernate уместно использовать тогда когда нужно получить независимость от БД. и когда разбиратся с тонкостями конкретной БД нет времени или желания особо я преимуществ не вижу пока. хотя может пока просто не вник )) Не правильно. Изменение RDBMS в крупной системе это на столько не тривиальная задача, что одним только Hibernate она не решается. Возможно частично. Но эта задача единоразовая и преплетать для неё такой фреймверк смысла нет. Hibernate даёт возможность существенно экономить время разработки уровня работы с БД, когда у вас данные представляют из себя сложный граф. Т.е. между записями очень много ассоциаций. И вам часто приходится с этими ассоциациями работать. Например вам нужно делать большую выборку из десятка таблиц. Hibernate позволяет очень простыми средствами менять структуру запроса на JOIN-ы либо подзапросы. И даже позволяет это делать динамически. Разработка такой же задачи на pure SQL может занимать несколько дней. Приходится таскать несколько SQL запросов для одних и тех же таблиц в зависимости от того где они нужны. Решить N+1 через JOIN - перепистаь запрос почти с нуля. Оптимизировать JOIN через 2-3 отдельных запроса - переписать запрос почти с нуля. С Hibernate тоже самое делается в течении часа-двух. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 13:22:43 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczС Hibernate тоже самое делается в течении часа-двух. Звучит, как рождественская сказка, брадт. Ну дай бох. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 13:46:26 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
maytonBlazkowiczС Hibernate тоже самое делается в течении часа-двух. Звучит, как рождественская сказка, брадт. Ну дай бох. Та ладно... Fetch Mode указал, перезапустил проект и протестил. Всё. Я же не говорю что Хибера всё остальное работает без косяков. Но конкретно в этом вопросе экономия на фоне рукописных SQL радикальная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 13:52:02 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Уважаемый Blazkowicz Насколько производительно работает данная библиотека ? Т.е. используються ли ВСЕ возможности базы ? Относительно диалекта SQL здесь все понятно. А как насчет изменений версий это диалекта, скажем перешли с Oracle 10 на Oracle 11 Или иной пример в Oracle 9-10-11 - есть предложение UPDATE - "тяжело" работает. есть предложение MERGE (вроде для других целей), но призводительнсть в разы больше, имеет ряд удобный доп. возможностей. Соответственно делаю "насильственный" запрос MERGE. Относительно трафика сети и количества обращений к серверу ? А другие механизмы базы (тригера, храним. процедуры, типа, job) HIBERNATE понимает ? Буду весьма признателен за ответы . GaraZполучить независимость от БД. Склоняюсь более к концепции "кросс-базовости". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 13:56:06 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
HOME_XНасколько производительно работает данная библиотека ? Достаточной для многих решений. А производительность единственный критерий качества ПО? Намного важнее чтобы оно горизонтально масштабировалось и просто поддерживалось. HOME_XТ.е. используються ли ВСЕ возможности базы ? Нет, конечно. HOME_XА как насчет изменений версий это диалекта, скажем перешли с Oracle 10 на Oracle 11 Оракловый диалект, только для 8ки свой. Для остальных версий, общий. HOME_XИли иной пример в Oracle 9-10-11 - есть предложение UPDATE - "тяжело" работает. есть предложение MERGE (вроде для других целей), но призводительнсть в разы больше, имеет ряд удобный доп. возможностей. Соответственно делаю "насильственный" запрос MERGE. Переписывается узкое место на SQL. HOME_XОтносительно трафика сети и количества обращений к серверу ? Что с ними? HOME_XА другие механизмы базы (тригера, храним. процедуры, типа, job) HIBERNATE понимает ? Частично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 14:02:51 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Ещё важное достоинство в Hibernate это Level 2 Cache. К plain SQL такое прикрутить с нуля не просто. И не надо рассказывать про то что RDBMS сама всё закеширует, на уровне Java кеши не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 14:04:33 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
Чем энтерпрайзовее решение тем оно сильнее сидит на игле одного произведителя БД. MSSQL, Db2, Oracle. Они штучны. Рукотворны. И затачиваются напильничками уже в эксплуатации. Туда-же идут хинты, матерализация представлений, профили запросов, сложные системы джобов, и реплик. И такие системы никто не верстает в "хибере". Это просто немыслимо. Там каждый CREATE TABLE - это архитектурный дискурс. Как создать? Какие опции физического хранения? Безопасность. Всякие ЦМС и прочие "универсалы" идут отдельной категорией. Для них никто не ставит задачу оптимизации на уровне постановки. И занимаются ей как правило отдельно от Java-кодинга другие люди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 14:05:29 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczHOME_XОтносительно трафика сети и количества обращений к серверу ? Что с ними? Пример - описал функцию с взаимодействием обьектов выложил на сервер. Один раз обратился - передал параметры - получил результат. В Hibernate - это описание отдельных классов. сколько обращений будет при выполнении запроса Обращанию внимание что описать архитектуру базы сразу вряд-ли возможно. Т.е. сколько получться классов -сколько будет и обращений к серверу БД ? Верно понимаю ? Т.е. теряю гибкость и оператвиность в разработке ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 14:26:18 |
|
||
|
Библиотека hibernate - в чем сила брат ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЕщё важное достоинство в Hibernate это Level 2 Cache. К plain SQL такое прикрутить с нуля не просто. И не надо рассказывать про то что RDBMS сама всё закеширует, на уровне Java кеши не нужны. Надо, надо. К тому же весь этот кэш множится на 1/N, где N -- кол-во приложений (систем), работающих с БД. А кэш БД -- он для всех. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 14:39:53 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38443489&tid=2128278]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
1070ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 1358ms |

| 0 / 0 |
