|
|
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Сразу после регистрации пользователя проверяю его в базе - есть. Логинюсь - делаю выборку по юзеру и проверяю длинну List, но прикол в том, что это срабатывает с третьего раза, т.е. первые два раза как буд-то юзера там нет, но он есть. Никаких ощибок, хотя на кажом шагу проверяю на ексепшины и т.д. В чем может быть проблема? Хибер использует vibur dbcp pool, настройки стандартные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 17:06 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
mysql. на локалке все ок, это только при работе c реальным серваком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 17:14 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
причем, происходит это не всегда - в большинстве случаев случаев логин происходит с первого раза ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 17:33 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
rema174, Посмотри лог - когда происходит INSERT. Когда комитится транзакция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 10:54 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, ничего там особенного не нахожу авторHibernate: insert into SomeTable (email, name, password, reg_date, id) values (?, ?, ?, ?, ?) INFO - user succesfully registred ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 16:42 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
также я находил по две одинаковые записи в бд, хотя делаю явно проверку перед коммитом в базу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 16:44 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Надо не проверку делать, а ограничения целостности накладывать. P.S. Никакая проверка не может обойти транзакционную изолированность. Грязное чтение - не в счёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 16:48 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovНадо ограничения целостности накладывать. первый раз слышу про такое, как это делается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 16:53 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
rema174первый раз слышу про такое, как это делается? Chapter 22. Additional modules : ddl - ограничения на уровне схемы. Скажем, имена пользователей обязаны быть уникальными, а значит соответствующая колонка должна иметь ограничения uniqueue и not null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 17:31 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
это какой-то ппц. поотключал все пулы. вроде работает. как оказалось, это связано с hibernate.connection.release_mode=after_transaction это проявляется и без пула. когда эта ерунда присутствует, то есть проблемы. но если ту строку выключить и поставить пул, то все глохнет после poolMaxSize. таким образом, или выключить пул и пользоваться как есть, или может на этом форуме кто-нибудь все-таки разбирается в хибернейте...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 20:07 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
И зачем все так любят Хибернейт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 20:20 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
mayton, А вы что любите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 01:02 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
rema174как оказалось, это связано с hibernate.connection.release_mode=after_transaction это проявляется и без пула. когда эта ерунда присутствует, то есть проблемы. но если ту строку выключить и поставить пул, то все глохнет после poolMaxSize. без release_mode Hibernate возвращает соединение в пул после закрытия сессии. С ним после каждой транзакции. Очень похоже что есть утечка сессий, и использование старых сессий. Выборка берется из кеша сессии, а не SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 07:32 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
maytonИ зачем все так любят Хибернейт.Вот и я тоже этим вопросом задаюсь... Занафига он нужен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 08:09 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
rema174, лучше показать немного кода и какие конфиги используются. авторСразу после регистрации пользователя проверяю его в базе - есть - чем делается проверка? Хибернейтом из кода приложения или сторонней утилитой? Например, это может быть из-за того, что управление пользователями (identity module) и аутентификация (login module) имеют индивидуальные источники данных. В этом случае действительно, спасает только агрессивная запись в базу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 09:38 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Alex KuznetsovmaytonИ зачем все так любят Хибернейт.Вот и я тоже этим вопросом задаюсь... Занафига он нужен? Может, отдельную тему открыть? Я вот тоже пытаюсь где-нибудь его использовать, но вменяемых причин брать его вместо чего попроще найти не могу. Только если ради скиллов и строчки в резюме, но пока совесть не позволяет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 09:50 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Alexander A. SakAlex Kuznetsovпропущено... Вот и я тоже этим вопросом задаюсь... Занафига он нужен? Может, отдельную тему открыть? Я вот тоже пытаюсь где-нибудь его использовать, но вменяемых причин брать его вместо чего попроще найти не могу. Только если ради скиллов и строчки в резюме, но пока совесть не позволяет.Ну, можно и тему отдельную открыть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 10:02 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
rema174но если ту строку выключить и поставить пул, то все глохнет после poolMaxSize. почему глохнет? По умолчанию, тот параметр=auto ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 11:28 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
rema174также я находил по две одинаковые записи в бд, хотя делаю явно проверку перед коммитом в базу http://stackoverflow.com/questions/4546131/using-unique-constraint-on-hibernate-jpa2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 12:23 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Petro123rema174но если ту строку выключить и поставить пул, то все глохнет после poolMaxSize. почему глохнет? По умолчанию, тот параметр=auto я и сам это хочу узнать :) "по умолчанию" - я не использую сейчас легкая перезагрузка... я не заметил каких-то сбоев при родном пуле хибернейта. вообще. но хочется ж по нормальному ) поэтому для эксперимента поставил с3p0 обновил версию хибернейта и левые зависимости повыкидывал. у меня на странице есть кнопка обновления списка аяксом, т.о. в рамках этого действия там происходит два соединения, и буквально за 30 сек можно сделать довольно много соединений. тестирую вдоль и поперек. вроде все ок. потом бац - заглохло. в браузере как-будто поключиться не может. в этот моент проверяю логи - пусто. так он ждет минут 5 и потом в браузере вот это и влогах орять пусто авторProxy Error The proxy server received an invalid response from an upstream server. The proxy server could not handle the request GET /requestName. Reason: Error reading from remote server Apache/2.2.15 Server at myserver.com Port 80 Как понять? Похоже на то, что я его загрузил запросами? Статические страницы продолжают работать. Но там где подключение - не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 12:35 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
rema174но хочется ж по нормальному ) ну дак, по нормальному - это транзакция = сессия хибера и возврат пула. Если от нечего делать экспиременты, то.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 12:44 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
rema174у меня на странице есть кнопка обновления списка аяксом, т.о. в рамках этого действия там происходит два соединения, и буквально за 30 сек можно сделать довольно много соединений. тестирую вдоль и поперек. вроде все ок. потом бац - заглохло. в браузере как-будто поключиться не может. в этот моент проверяю логи - пусто. так он ждет минут 5 и потом в браузере вот это и влогах орять пусто аякс рассматривается сервером как обычный запрос. В рамках клиента не делай много асинхронных запросов с одной кнопки. Они бесполезны. ... Если виснет, проверь отладчиком. Там же всё видно по аяксу. ... Если тормоз по МАКС ПУЛ, то это тоже видно на мониторе апп-сервера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 12:48 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
rema174Статические страницы продолжают работать. Но там где подключение - не работает. у меня было с глассфишем. Решилось увеличением параметра его пула. Но это меня ДОСили)), а не обычная работа) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 12:50 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Petro123rema174Статические страницы продолжают работать. Но там где подключение - не работает. у меня было с глассфишем. Решилось увеличением параметра его пула. в заголовке страницы тоже 502 Proxy Error ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 13:07 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
rema174в заголовке страницы тоже 502 Proxy Error ? я не дожидался ответа. Он завис на запросах AJAX. Я глассфишь перегрузил и посмотрел его монитор. Добавил параметр (AFAIK размер пула - в инете было). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 13:13 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Leonidvmayton, А вы что любите? Использую JDBC. И иногда - MyBatis. Это как "ручная коробка передач брат". Поверь. 100% control! Mua-ha-ha. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 13:48 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
maytonЭто как "ручная коробка передач брат". Поверь. 100% control! Mua-ha-ha. аналогия отличная (почти). на светофоре автомат уже до следующего перекрестка доедет, пока ты тронешься только. собственно в этом и ответ - если нужно писать базиллион тупых джойнов и апдейтов, то хибернейт удобней - никакой 100% control в этом месте нафиг не упал и особого "знания sql" в этом тоже никакого нет. К сожалению хибернейт немного сложнее "автомата", так что по началу тоже времени убъется масса на всякие непонятки. Но хоть не так скучно ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 14:02 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
chpashaНо хоть не так скучно ;) и не говори, стандартный пул лучший, т.к. он работает, то я запарился уже искать в чем дело) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 15:11 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
У меня нет базиллиона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 15:30 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
chpashamaytonЭто как "ручная коробка передач брат". Поверь. 100% control! Mua-ha-ha. аналогия отличная (почти). на светофоре автомат уже до следующего перекрестка доедет, пока ты тронешься только. собственно в этом и ответ - если нужно писать базиллион тупых джойнов и апдейтов, то хибернейт удобней - никакой 100% control в этом месте нафиг не упал и особого "знания sql" в этом тоже никакого нет. К сожалению хибернейт немного сложнее "автомата", так что по началу тоже времени убъется масса на всякие непонятки. Но хоть не так скучно ;)Ну, на перекрёстке то может кто и вырвется вперёд с автоматом, а вот на драге если и вырвется чуток на автомате вперёд, то потом к финишу ооой как сливает. Поверьте, я в курсе этого, потому как систему для драга разрабатывал. Так что сравнение IMHO двоякое получается... А вот насчёт гибкости и 100% контроля, то Hibernate тут сливает plain JDBC Call по всем параметрам, единственное в чём он не сливает, так это в скорости создания прототипов или в создании тупых CRUD процессов. Чуть повыше сложность запросов, чуть сложнее бизнес логика и оппаньки, начинаются проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 05:33 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Alex Kuznetsov[Ну, на перекрёстке то может кто и вырвется вперёд с автоматом, а вот на драге чисто ради интереса, сколько народу и какую часть времени ездит в городском цикле по светофорам и сколько на ралли по холмам и степям? анекдот про верблюдов в зоопарке я уже рассказывал неоднократно - еще одна отличная аналогия на тему ненужных наворотов в не подходящем месте. Alex KuznetsovА вот насчёт гибкости и 100% контроля, то Hibernate тут сливает plain JDBC Call по всем параметрам только вот незадача, гибкость и 100% контроля не так часто нужны, как это может показаться. и когда они нужны, о чудо, ими все еще можно воспользоваться, не смотря на. а так-то да, сливает. Alex Kuznetsov, единственное в чём он не сливает, так это в скорости создания прототипов или в создании тупых CRUD процессов тупые CRUD процессы - они чуть менее чем везде Alex KuznetsovЧуть повыше сложность запросов, чуть сложнее бизнес логика и оппаньки, начинаются проблемы. а никто и не говорит, что серебрянные пули существуют. 100% любых проектов из-за этого писать на plain JDBC это, я извиняюсь, маразм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 13:53 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
У меня вобщем-то нет вопросов к хибернейт. Он занимает свой сегмент. Но есть немалый процент Junior-ов которые без хибернейта ничего не умеют сделать. Более того. Я наблюдаю какую-то безальтернативщину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 14:12 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Alex KuznetsovЧуть повыше сложность запросов, чуть сложнее бизнес логика и оппаньки, начинаются проблемы.По-моему личному убеждению Hibernate и ORM вообще пригодны для несложного OLTP. Взял из базы, поменял, обратно положил... Как-то так. Я бы вообще законодательно запретил применять ORM для задач, в которых "тянется" более 100 сущностей. Почему именно 100? Это считаю приемлемый ограничением для постраничной выборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 14:37 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Вот есть у меня проектец - система бронирования билетов на автобус, там и объектов-то с гулькин нос, а всё-же Хибер там и нафиг не упирался, ибо есть определённая бизнес логика, которая хибером не покроется, и есть взаимоотношения между сущностями многие ко многим, хотя там же есть и справочники, которые хибером-бы прекрасно покрылись... Потому построена она на чистом plain JDBC и ORM и спокойно себе летает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 12:49 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Alex KuznetsovВот есть у меня проектец - система бронирования билетов на автобус, там и объектов-то с гулькин нос, а всё-же Хибер там и нафиг не упирался, ибо есть определённая бизнес логика, которая хибером не покроется так и кто тебе сказал, что ее нельзя реализовать на стороне сервера или в любом другом месте, где это удобно? Alex KuznetsovПотому построена она на чистом plain JDBC и ORM а ORM это что? Alex Kuznetsovи спокойно себе летает. ну да. я вот щас копаю старый проект на windows mobile, там есть функция на экранный лист, которая ни много ни мало URL encode делает. причем, например этот кусок используется в 3х местах, я специально посчитал Код: c# 1. 2. 3. 4. всю функцию можно было заменить одной строчкой. но кому-то же было нечем заняться. а чо, "летает" ведь. а то, что в этом спагетти кому-то копаться придется, так кого это колышет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 13:58 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
WGAЯ бы вообще законодательно запретил применять ORM для задач, в которых "тянется" более 100 сущностей. Почему именно 100? Это считаю приемлемый ограничением для постраничной выборки. Вот здесь я-бы детализировал. Может дело не в количестве сущностей. Или нужен какой-то другой критерий. Например OLTP-характер транзакций. Вроде как этот кластер задач уже разведан. И можно условно класть в одну корзину - дескыть "это ОЛПТ" а "это ДВХ". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 14:05 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Если: OLTP - Рассмотреть на предмет использования Hibernate. иначе: Взять паузу. И подумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 14:35 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
maytonWGAЯ бы вообще законодательно запретил применять ORM для задач, в которых "тянется" более 100 сущностей. Почему именно 100? Это считаю приемлемый ограничением для постраничной выборки. Вот здесь я-бы детализировал. Может дело не в количестве сущностей.Конечно, дело не количестве. Это просто один частный случай из практики, эдакое "забивание гвоздей микроскопом". Сначала таскаем десятками (а видел и сотнями) тысяч сущности, а потом, а потом обвиняем JPA, что он порождает вал запросов и в том, какой он неуправляемый. maytonИли нужен какой-то другой критерий. Например OLTP-характер транзакций. Вроде как этот кластер задач уже разведан. И можно условно класть в одну корзину - дескыть "это ОЛПТ" а "это ДВХ".Нужен. У меня его нет. Да и не бывает "ОЛТП" в чистом виде. Я обычно комбнирую с JDBC, где-то можно и native-SQL для скорости привлечь. Аналитические функции - самый тот пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2015, 18:52 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
chpashaAlex KuznetsovВот есть у меня проектец - система бронирования билетов на автобус, там и объектов-то с гулькин нос, а всё-же Хибер там и нафиг не упирался, ибо есть определённая бизнес логика, которая хибером не покроется так и кто тебе сказал, что ее нельзя реализовать на стороне сервера или в любом другом месте, где это удобно? А где я сказал, что у меня не на стороне сервера реализована бизнес логика? И при чём здесь вообще место реализации бизнес логики? Технология должна оптимально решать те или иные задачи... chpashaAlex KuznetsovПотому построена она на чистом plain JDBC и ORM а ORM это что?Опять-же, что мешает мне применять ORM отдельно от Hibernate??? chpashaAlex Kuznetsovи спокойно себе летает. ну да. я вот щас копаю старый проект на windows mobile, там есть функция на экранный лист, которая ни много ни мало URL encode делает. причем, например этот кусок используется в 3х местах, я специально посчитал Код: c# 1. 2. 3. 4. всю функцию можно было заменить одной строчкой. но кому-то же было нечем заняться. а чо, "летает" ведь. а то, что в этом спагетти кому-то копаться придется, так кого это колышет.Воспринимаю это как жалоба на криворуких программеров, которые делали систему до Вас... Ну что-же, всякое в жизни случается... Она не всегда такая какой нам хочется её видеть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2015, 08:57 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Alex KuznetsovА где я сказал, что у меня не на стороне сервера реализована бизнес логика? а где я сказал, что она у тебя реализована там-то и там-то? Alex Kuznetsov И при чём здесь вообще место реализации бизнес логики? а при том, что использование хибернейта не исключает использование нативных средств сервера. Alex Kuznetsov Технология должна оптимально решать те или иные задачи... аминь Alex KuznetsovОпять-же, что мешает мне применять ORM отдельно от Hibernate??? ничего. покажи свой, заценим. Alex KuznetsovВоспринимаю это как жалоба на криворуких программеров вообще-то это был намек на то, что все проблемы от граждан, которые считают, что усердие и труд все перетрут. это я сейчас не про кого-то конкретно. так рассуждаю в слух просто о подходах к выбору средств. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2015, 12:06 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
chpashaAlex Kuznetsov И при чём здесь вообще место реализации бизнес логики? а при том, что использование хибернейта не исключает использование нативных средств сервера. Конечно не исключает, просто добавляет больше "зоопарка" в систему. Ну и в процесс поддержки чуток больше геморроя chpashaAlex KuznetsovОпять-же, что мешает мне применять ORM отдельно от Hibernate??? ничего. покажи свой, заценим. Да не вопрос - заценивай. Уровень абстрации... AbstractBusinessObject Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Реализация записи из ленты новостей Это простейший объект, который не требует каких-либо серьёзных выборок из базы. News Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. Бизнес Модель NewsModel Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. Ну и для примера что-нибудь посложнее - покажи как на хибере выборку данных сделать... BusSchemeModel Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 07:43 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Капец. Сколько букв. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 08:38 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
mayton, В смысле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 09:02 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Boilerplate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 09:10 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
maytonBoilerplate.C`est La Vie, хотелось-бы избавиться от него, но ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 09:24 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Alex Kuznetsov, собственно вопросов больше нет. вот уж точно, лучше разок показать код, чем растекаться мыслью по древу на трех страницах Alex Kuznetsov,покажи как на хибере выборку данных сделать... чего конкретно показывать? у тебя там все запросы элементарны, примеров масса. я серьезно. ну т.е. я могу написать, но смысл? ну вот Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. пару слов о птичках. собственно это я и имел в виду - для какой-то элементарщины из селектов и инсертов наворачивается глупый велосипед с магическими константами (setObjectState про энумы вообще слыхали, не? или у вас там legacy code), кучей sql в ява-коде, доступом к полям по индексу (много спичек наэкономили?) и т.д. Вы бы, батенька, уж хоть на ibatis/mybatis посмотрели, там тоже много рутины, но все равно небо и земля по сравнению с. вот честно, без обид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 12:57 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
2 Алекс Кузнецов и все. Вот тут как-то уж очень некрасиво. Код: java 1. Неужели мы хоть-как-то априори не можем знать какой список базовых классов или интерфейсов мы получим? Вообще моё замечание было даже не в плоскости хибернейт. Просто SQL исторически создавался как проблемно-ориентированный язык. На нём в 99% случаев делались отчётости. Самого разного вида. Моя работа в *Телекомах заключалась в большинстве случаев в разработке, отладке и суппорте подобных запросов. И бойлерплейт заключается в том что те задачи которые я решал в 10 строк на SQL. Java разработчик решает в 100 строчек и ОЧЕНЬ ГОРДИТСЯ этим. Ребята! Родные! Вы-же инженеры пятак вашу распроткак. Неужели вы не форсируете Groovy, Scala? Неужели вам не интересен различный DSL? Неужели вам в кайф писать безсмысленные геттеры и сеттеры назначение которых сегодня давно уже утеряно как утерян смысл "астролябии" и "компаса" для навигации? Неужели у вас хвататет смелости хвастаться перед другими разработчиками таким страшным нагромождением кода. Этож даже не кодинг! Это ритуал древних жрецов! И бох с ним с батисом. У него тоже свой бойлерплейт существует но батис по крайней мере акцентирует внимание на том что ГЛАВНЫМ в задаче с БД является именно запрос на языке БД. Батис вам позволяет ДУМАТЬ в алгебре кортежей. А не прятать подкапот стыдливо самую важную часть процессинга БД. Батис постулирует задачу как идущую ОТ БД к Java модели. А хибер - наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 13:12 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
maytonБатис постулирует задачу как идущую ОТ БД к Java модели. А хибер - наоборот. с этим ничего не сделать. Т.к. это в голове программиста. Они разные)). ООП продвинутый программист не напишет SQL _сложный_ запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 13:55 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Petro123ООП продвинутый программист не напишет SQL _сложный_ запрос. никакой прямой связи. по-твоему человек, хорошо знающий ООП, не может знать хорошо SQL? ну глупость же. это как сказать, что хороший пловец - не сможет ездить на велосипеде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 14:05 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
chpashaне сможет ездить на велосипеде. ООП, шаблоны, SQL и программирование - это не велосипед для 3-го класса второй четверти. Начнём с того, что программирование, это НЕ ремесло)). Велосипед, это хибер + CRUD ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 14:20 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Petro123ООП, шаблоны, SQL и программирование - это не велосипед для 3-го класса второй четверти. а как на счет 5 класса 3-ей четверти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 14:26 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
chpasha, )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 16:08 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
mayton2 Алекс Кузнецов и все. Вот тут как-то уж очень некрасиво. Код: java 1. Неужели мы хоть-как-то априори не можем знать какой список базовых классов или интерфейсов мы получим? А в чём собственно некрасивость, если абстрактная модель действительно не знает сколько тех или иных параметров будет использовано при создании записей в таблицах БД конкретной моделью и сколько будет и какого типа будут конкретные поля у конкретного объекта? Я понимаю, что выгляжу ретроградом и эдаким динозавром в данном случае, тем не менее, считаю, что такой подход имеет право на существование, да и на практике даёт ожидаемый результат. PS. Убедили старого посмотреть в сторону чего-то нового (а может и не очень)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2015, 08:46 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Alex Kuznetsovmayton2 Алекс Кузнецов и все. Вот тут как-то уж очень некрасиво. Код: java 1. Неужели мы хоть-как-то априори не можем знать какой список базовых классов или интерфейсов мы получим? А в чём собственно некрасивость, если абстрактная модель действительно не знает сколько тех или иных параметров будет использовано при создании записей в таблицах БД конкретной моделью и сколько будет и какого типа будут конкретные поля у конкретного объекта? Я понимаю, что выгляжу ретроградом и эдаким динозавром в данном случае, тем не менее, считаю, что такой подход имеет право на существование, да и на практике даёт ожидаемый результат. PS. Убедили старого посмотреть в сторону чего-то нового (а может и не очень)... если есть время, посмотрите тут - http://javalite.io/activejdbc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2015, 20:29 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
забыл никAlex Kuznetsovпропущено... А в чём собственно некрасивость, если абстрактная модель действительно не знает сколько тех или иных параметров будет использовано при создании записей в таблицах БД конкретной моделью и сколько будет и какого типа будут конкретные поля у конкретного объекта? Я понимаю, что выгляжу ретроградом и эдаким динозавром в данном случае, тем не менее, считаю, что такой подход имеет право на существование, да и на практике даёт ожидаемый результат. PS. Убедили старого посмотреть в сторону чего-то нового (а может и не очень)... если есть время, посмотрите тут - http://javalite.io/activejdbc интересно, но я не встречал это в вакансиях а вот это не совсем понятно: авторCREATE TABLE people ( bal bla ); ActiveJDBC infers DB schema parameters from a database. This means you do not have to provide it in code. The simplest model looks like this: public class Person extends Model {} Despite the fact that there is no code in the body of the class, it is fully functional and will map to a table called PEOPLE automatically. каким образом Person проецируется на TABLE people? а если несколько таблиц, как он выбирает какую на что проецировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2015, 20:50 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
rema174забыл никпропущено... если есть время, посмотрите тут - http://javalite.io/activejdbc интересно, но я не встречал это в вакансиях а вот это не совсем понятно: авторCREATE TABLE people ( bal bla ); ActiveJDBC infers DB schema parameters from a database. This means you do not have to provide it in code. The simplest model looks like this: public class Person extends Model {} Despite the fact that there is no code in the body of the class, it is fully functional and will map to a table called PEOPLE automatically. каким образом Person проецируется на TABLE people? а если несколько таблиц, как он выбирает какую на что проецировать? В вакансиях не встречается, вы правы. AJ была приведена просто как пример, что когда ты устал от тяжеловесных хибернейтов, не надо садиться и писать велосипед, есть уже куча подобного добра. Насчет вашего второго вопроса, все просто. Если класс наследуется от Model, то при загрузке приложения, база проверяется на наличие одноименной таблицы, автоматически определяет колонки и тд. Для легаси кода и энтерпрайз таблиц не очень подходит, хотя можно и указать имя таблицы через аннотацию, вроде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2015, 21:15 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
забыл никЕсли класс наследуется от Model, то при загрузке приложения, база проверяется на наличие одноименной таблицы, автоматически определяет колонки и тд. ясно. меня смутило, что у них имена разные, но видно для одной таблицы пофиг какое имя у класса и таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2015, 23:38 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
rema174забыл никЕсли класс наследуется от Model, то при загрузке приложения, база проверяется на наличие одноименной таблицы, автоматически определяет колонки и тд. ясно. меня смутило, что у них имена разные, но видно для одной таблицы пофиг какое имя у класса и таблицы Нет, там все интереснее. Фишка из руби-он-рейлс, типа плюрал нэймс, или что-то такое. Смысл в том, что если класс Юзер - то ищет таблицу Юзерс, и тд. А множественное для Person - будет People, если честно не понимаю такой заморочки:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 00:20 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
mayton, авторВообще моё замечание было даже не в плоскости хибернейт. Просто SQL исторически создавался как проблемно-ориентированный язык. На нём в 99% случаев делались отчётости. Самого разного вида. Моя работа в *Телекомах заключалась в большинстве случаев в разработке, отладке и суппорте подобных запросов. И бойлерплейт заключается в том что те задачи которые я решал в 10 строк на SQL. Java разработчик решает в 100 строчек и ОЧЕНЬ ГОРДИТСЯ этим. Ребята! Родные! Вы-же инженеры пятак вашу распроткак. Неужели вы не форсируете Groovy, Scala? Неужели вам не интересен различный DSL? Неужели вам в кайф писать безсмысленные геттеры и сеттеры назначение которых сегодня давно уже утеряно как утерян смысл "астролябии" и "компаса" для навигации? Неужели у вас хвататет смелости хвастаться перед другими разработчиками таким страшным нагромождением кода. Этож даже не кодинг! Это ритуал древних жрецов! И бох с ним с батисом. У него тоже свой бойлерплейт существует но батис по крайней мере акцентирует внимание на том что ГЛАВНЫМ в задаче с БД является именно запрос на языке БД. Батис вам позволяет ДУМАТЬ в алгебре кортежей. А не прятать подкапот стыдливо самую важную часть процессинга БД. Батис постулирует задачу как идущую ОТ БД к Java модели. А хибер - наоборот. Вы абсолютно правы. Если развить вашу мысль, окажется что джава вообще не нужна во многих местах, куда ее пихают - намного проще взять postgresql и написать всю обработку данных на хранимых процедурах. Получится код с минимумом творчества (язык слишком тупой, творцу негде развернуться будет), каждая строка которого будет нести какую-то бизнес нагрузку, а не конфигурировать абстрактные фабрики паттернов через xml. В 2000-x это еще имело какой-то смысл - один индус мог и работу с данными закодировать, и GUI. Сейчас пользовательский интерфейс делают на джаваскрипте, ему нужно только получить данные из базы в видe json. Держать для этого программистов, у которых перепаковка резалтсетов в json массивы превращается в подвиг с приключениями, для бизнеса дороговато выходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 06:32 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
забыл никесли есть время, посмотрите тут - http://javalite.io/activejdbc Эдакую хренопень мы делали на курсах Advanced Java Programming в Лондоне в далёком 2001 году с Carlo Lazzaris, который в SUN Microsystems отвечал за разработку спецификаций версии 1.2 и 1.3. И с помощью метаданных вытаскивали информацию о таблицах и строили стандартного вида запросы и т.д. Кроме того, в силу всё-таки спецификации языка и отсутствия некоторых вещей, которые есть сейчас, таких как например, аннотации, мы использовали рефлексию для установки/получения значений полей/свойств, а все бизнес сущности были порождены от абстрактного базового класса и реализовали именно бизнес логику обработки отдельного бизнес объекта. Работа с базой была вынесена в отдельный слой... Ну да ладно, что вспоминать-то и так всё ясно и понятно... К сожалению (ну на мой консервативный взгляд), сейчас появилось довольно много "фрэймворкоюзеров", т.е. тех, кто знает как использовать различные фрэймворки, но не понимает сущности происходящих внутри них процессов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 06:59 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
Вы абсолютно правы. Если развить вашу мысль, окажется что джава вообще не нужна во многих местах, куда ее пихают - намного проще взять postgresql и написать всю обработку данных на хранимых процедурах. Получится код с минимумом творчества (язык слишком тупой, творцу негде развернуться будет), каждая строка которого будет нести какую-то бизнес нагрузку, а не конфигурировать абстрактные фабрики паттернов через xml. В 2000-x это еще имело какой-то смысл - один индус мог и работу с данными закодировать, и GUI. Сейчас пользовательский интерфейс делают на джаваскрипте, ему нужно только получить данные из базы в видe json. Держать для этого программистов, у которых перепаковка резалтсетов в json массивы превращается в подвиг с приключениями, для бизнеса дороговато выходит.[/quot] В связи с нововведениями в БД (в частности PostgreSQL), перепаковка JSON не нужна, можно хранить json как есть. Причем по ним можнос строить индексы и делать запросы. <:o) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 07:01 |
|
||
|
какое-то волшебство, хибенейт или пул?
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, Оракл 12 тоже JSON поддержка)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 08:28 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2125489]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
51ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 335ms |

| 0 / 0 |
