powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / какое-то волшебство, хибенейт или пул?
63 сообщений из 63, показаны все 3 страниц
какое-то волшебство, хибенейт или пул?
    #38862639
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сразу после регистрации пользователя проверяю его в базе - есть.

Логинюсь - делаю выборку по юзеру и проверяю длинну List, но прикол в том, что это срабатывает с третьего раза, т.е. первые два раза как буд-то юзера там нет, но он есть. Никаких ощибок, хотя на кажом шагу проверяю на ексепшины и т.д.

В чем может быть проблема? Хибер использует vibur dbcp pool, настройки стандартные.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38862640
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mysql.
на локалке все ок, это только при работе c реальным серваком
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38862643
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
причем, происходит это не всегда - в большинстве случаев случаев логин происходит с первого раза
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863005
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,

Посмотри лог - когда происходит INSERT. Когда комитится транзакция.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863473
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

ничего там особенного не нахожу
авторHibernate: insert into SomeTable (email, name, password, reg_date, id) values (?, ?, ?, ?, ?)
INFO - user succesfully registred
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863476
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
также я находил по две одинаковые записи в бд, хотя делаю явно проверку перед коммитом в базу
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863484
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо не проверку делать, а ограничения целостности накладывать.

P.S. Никакая проверка не может обойти транзакционную изолированность. Грязное чтение - не в счёт.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863487
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovНадо ограничения целостности накладывать.
первый раз слышу про такое, как это делается?
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863531
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174первый раз слышу про такое, как это делается? Chapter 22. Additional modules : ddl - ограничения на уровне схемы.
Скажем, имена пользователей обязаны быть уникальными, а значит соответствующая колонка должна иметь ограничения uniqueue и not null.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863672
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это какой-то ппц. поотключал все пулы. вроде работает.

как оказалось, это связано с
hibernate.connection.release_mode=after_transaction
это проявляется и без пула. когда эта ерунда присутствует, то есть проблемы.

но если ту строку выключить и поставить пул, то все глохнет после poolMaxSize.

таким образом, или выключить пул и пользоваться как есть,
или может на этом форуме кто-нибудь все-таки разбирается в хибернейте...?
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863683
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И зачем все так любят Хибернейт.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863800
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

А вы что любите?
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863868
пролетевший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174как оказалось, это связано с
hibernate.connection.release_mode=after_transaction
это проявляется и без пула. когда эта ерунда присутствует, то есть проблемы.

но если ту строку выключить и поставить пул, то все глохнет после poolMaxSize.

без release_mode Hibernate возвращает соединение в пул после закрытия сессии. С ним после каждой транзакции.
Очень похоже что есть утечка сессий, и использование старых сессий. Выборка берется из кеша сессии, а не SQL
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863878
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ зачем все так любят Хибернейт.Вот и я тоже этим вопросом задаюсь...
Занафига он нужен?
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863930
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rema174,
лучше показать немного кода и какие конфиги используются.
авторСразу после регистрации пользователя проверяю его в базе - есть - чем делается проверка? Хибернейтом из кода приложения или сторонней утилитой?

Например, это может быть из-за того, что управление пользователями (identity module) и аутентификация (login module) имеют индивидуальные источники данных.
В этом случае действительно, спасает только агрессивная запись в базу
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863939
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex KuznetsovmaytonИ зачем все так любят Хибернейт.Вот и я тоже этим вопросом задаюсь...
Занафига он нужен?
Может, отдельную тему открыть?
Я вот тоже пытаюсь где-нибудь его использовать, но вменяемых причин брать его вместо чего попроще найти не могу. Только если ради скиллов и строчки в резюме, но пока совесть не позволяет.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38863949
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. SakAlex Kuznetsovпропущено...
Вот и я тоже этим вопросом задаюсь...
Занафига он нужен?
Может, отдельную тему открыть?
Я вот тоже пытаюсь где-нибудь его использовать, но вменяемых причин брать его вместо чего попроще найти не могу. Только если ради скиллов и строчки в резюме, но пока совесть не позволяет.Ну, можно и тему отдельную открыть...
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864038
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174но если ту строку выключить и поставить пул, то все глохнет после poolMaxSize.
почему глохнет?
По умолчанию, тот параметр=auto
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864102
NikolayV81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174также я находил по две одинаковые записи в бд, хотя делаю явно проверку перед коммитом в базу
http://stackoverflow.com/questions/4546131/using-unique-constraint-on-hibernate-jpa2
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864112
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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

Как понять? Похоже на то, что я его загрузил запросами?
Статические страницы продолжают работать. Но там где подключение - не работает.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864124
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174но хочется ж по нормальному )
ну дак, по нормальному - это транзакция = сессия хибера и возврат пула.
Если от нечего делать экспиременты, то....
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864136
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174у меня на странице есть кнопка обновления списка аяксом, т.о. в рамках этого действия там происходит два соединения, и буквально за 30 сек можно сделать довольно много соединений. тестирую вдоль и поперек. вроде все ок. потом бац - заглохло. в браузере как-будто поключиться не может. в этот моент проверяю логи - пусто. так он ждет минут 5 и потом в браузере вот это и влогах орять пусто
аякс рассматривается сервером как обычный запрос.
В рамках клиента не делай много асинхронных запросов с одной кнопки. Они бесполезны.
...
Если виснет, проверь отладчиком. Там же всё видно по аяксу.
...
Если тормоз по МАКС ПУЛ, то это тоже видно на мониторе апп-сервера
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864140
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174Статические страницы продолжают работать. Но там где подключение - не работает.
у меня было с глассфишем. Решилось увеличением параметра его пула.
Но это меня ДОСили)), а не обычная работа)
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864160
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123rema174Статические страницы продолжают работать. Но там где подключение - не работает.
у меня было с глассфишем. Решилось увеличением параметра его пула.

в заголовке страницы тоже 502 Proxy Error ?
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864165
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174в заголовке страницы тоже 502 Proxy Error ?
я не дожидался ответа.
Он завис на запросах AJAX.
Я глассфишь перегрузил и посмотрел его монитор. Добавил параметр (AFAIK размер пула - в инете было).
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864218
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidvmayton,

А вы что любите?
Использую JDBC. И иногда - MyBatis.

Это как "ручная коробка передач брат". Поверь. 100% control! Mua-ha-ha.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864232
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭто как "ручная коробка передач брат". Поверь. 100% control! Mua-ha-ha.
аналогия отличная (почти). на светофоре автомат уже до следующего перекрестка доедет, пока ты тронешься только. собственно в этом и ответ - если нужно писать базиллион тупых джойнов и апдейтов, то хибернейт удобней - никакой 100% control в этом месте нафиг не упал и особого "знания sql" в этом тоже никакого нет. К сожалению хибернейт немного сложнее "автомата", так что по началу тоже времени убъется масса на всякие непонятки. Но хоть не так скучно ;)
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864368
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpashaНо хоть не так скучно ;)
и не говори, стандартный пул лучший, т.к. он работает, то я запарился уже искать в чем дело)
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864413
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня нет базиллиона.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38864990
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashamaytonЭто как "ручная коробка передач брат". Поверь. 100% control! Mua-ha-ha.
аналогия отличная (почти). на светофоре автомат уже до следующего перекрестка доедет, пока ты тронешься только. собственно в этом и ответ - если нужно писать базиллион тупых джойнов и апдейтов, то хибернейт удобней - никакой 100% control в этом месте нафиг не упал и особого "знания sql" в этом тоже никакого нет. К сожалению хибернейт немного сложнее "автомата", так что по началу тоже времени убъется масса на всякие непонятки. Но хоть не так скучно ;)Ну, на перекрёстке то может кто и вырвется вперёд с автоматом, а вот на драге если и вырвется чуток на автомате вперёд, то потом к финишу ооой как сливает. Поверьте, я в курсе этого, потому как систему для драга разрабатывал. Так что сравнение IMHO двоякое получается...

А вот насчёт гибкости и 100% контроля, то Hibernate тут сливает plain JDBC Call по всем параметрам, единственное в чём он не сливает, так это в скорости создания прототипов или в создании тупых CRUD процессов. Чуть повыше сложность запросов, чуть сложнее бизнес логика и оппаньки, начинаются проблемы.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38865481
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov[Ну, на перекрёстке то может кто и вырвется вперёд с автоматом, а вот на драге
чисто ради интереса, сколько народу и какую часть времени ездит в городском цикле по светофорам и сколько на ралли по холмам и степям? анекдот про верблюдов в зоопарке я уже рассказывал неоднократно - еще одна отличная аналогия на тему ненужных наворотов в не подходящем месте.

Alex KuznetsovА вот насчёт гибкости и 100% контроля, то Hibernate тут сливает plain JDBC Call по всем параметрам
только вот незадача, гибкость и 100% контроля не так часто нужны, как это может показаться. и когда они нужны, о чудо, ими все еще можно воспользоваться, не смотря на. а так-то да, сливает.

Alex Kuznetsov, единственное в чём он не сливает, так это в скорости создания прототипов или в создании тупых CRUD процессов
тупые CRUD процессы - они чуть менее чем везде

Alex KuznetsovЧуть повыше сложность запросов, чуть сложнее бизнес логика и оппаньки, начинаются проблемы.
а никто и не говорит, что серебрянные пули существуют. 100% любых проектов из-за этого писать на plain JDBC это, я извиняюсь, маразм.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38865498
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вобщем-то нет вопросов к хибернейт. Он занимает свой сегмент. Но есть
немалый процент Junior-ов которые без хибернейта ничего не умеют сделать.
Более того. Я наблюдаю какую-то безальтернативщину.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38865529
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
Alex KuznetsovЧуть повыше сложность запросов, чуть сложнее бизнес логика и оппаньки, начинаются проблемы.По-моему личному убеждению Hibernate и ORM вообще пригодны для несложного OLTP. Взял из базы, поменял, обратно положил... Как-то так.
Я бы вообще законодательно запретил применять ORM для задач, в которых "тянется" более 100 сущностей. Почему именно 100? Это считаю приемлемый ограничением для постраничной выборки.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38866556
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот есть у меня проектец - система бронирования билетов на автобус, там и объектов-то с гулькин нос, а всё-же Хибер там и нафиг не упирался, ибо есть определённая бизнес логика, которая хибером не покроется, и есть взаимоотношения между сущностями многие ко многим, хотя там же есть и справочники, которые хибером-бы прекрасно покрылись... Потому построена она на чистом plain JDBC и ORM и спокойно себе летает.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38866669
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex KuznetsovВот есть у меня проектец - система бронирования билетов на автобус, там и объектов-то с гулькин нос, а всё-же Хибер там и нафиг не упирался, ибо есть определённая бизнес логика, которая хибером не покроется
так и кто тебе сказал, что ее нельзя реализовать на стороне сервера или в любом другом месте, где это удобно?

Alex KuznetsovПотому построена она на чистом plain JDBC и ORM
а ORM это что?

Alex Kuznetsovи спокойно себе летает.
ну да. я вот щас копаю старый проект на windows mobile, там есть функция на экранный лист, которая ни много ни мало URL encode делает. причем, например этот кусок используется в 3х местах, я специально посчитал
Код: c#
1.
2.
3.
4.
if ((c < '0' && c != '-' && c != '.') ||
                         (c < 'A' && c > '9') ||
                         (c > 'Z' && c < 'a' && c != '_') ||
                         (c > 'z'))


всю функцию можно было заменить одной строчкой. но кому-то же было нечем заняться. а чо, "летает" ведь. а то, что в этом спагетти кому-то копаться придется, так кого это колышет.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38866687
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WGAЯ бы вообще законодательно запретил применять ORM для задач, в которых "тянется" более 100 сущностей. Почему именно 100? Это считаю приемлемый ограничением для постраничной выборки.
Вот здесь я-бы детализировал. Может дело не в количестве сущностей.
Или нужен какой-то другой критерий. Например OLTP-характер транзакций.
Вроде как этот кластер задач уже разведан. И можно условно класть
в одну корзину - дескыть "это ОЛПТ" а "это ДВХ".
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38866738
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если: OLTP - Рассмотреть на предмет использования Hibernate.

иначе: Взять паузу. И подумать.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38867129
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
maytonWGAЯ бы вообще законодательно запретил применять ORM для задач, в которых "тянется" более 100 сущностей. Почему именно 100? Это считаю приемлемый ограничением для постраничной выборки.
Вот здесь я-бы детализировал. Может дело не в количестве сущностей.Конечно, дело не количестве. Это просто один частный случай из практики, эдакое "забивание гвоздей микроскопом". Сначала таскаем десятками (а видел и сотнями) тысяч сущности, а потом, а потом обвиняем JPA, что он порождает вал запросов и в том, какой он неуправляемый.
maytonИли нужен какой-то другой критерий. Например OLTP-характер транзакций.
Вроде как этот кластер задач уже разведан. И можно условно класть
в одну корзину - дескыть "это ОЛПТ" а "это ДВХ".Нужен. У меня его нет. Да и не бывает "ОЛТП" в чистом виде. Я обычно комбнирую с JDBC, где-то можно и native-SQL для скорости привлечь. Аналитические функции - самый тот пример.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38867395
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaAlex KuznetsovВот есть у меня проектец - система бронирования билетов на автобус, там и объектов-то с гулькин нос, а всё-же Хибер там и нафиг не упирался, ибо есть определённая бизнес логика, которая хибером не покроется
так и кто тебе сказал, что ее нельзя реализовать на стороне сервера или в любом другом месте, где это удобно?
А где я сказал, что у меня не на стороне сервера реализована бизнес логика? И при чём здесь вообще место реализации бизнес логики? Технология должна оптимально решать те или иные задачи...

chpashaAlex KuznetsovПотому построена она на чистом plain JDBC и ORM
а ORM это что?Опять-же, что мешает мне применять ORM отдельно от Hibernate???

chpashaAlex Kuznetsovи спокойно себе летает.
ну да. я вот щас копаю старый проект на windows mobile, там есть функция на экранный лист, которая ни много ни мало URL encode делает. причем, например этот кусок используется в 3х местах, я специально посчитал
Код: c#
1.
2.
3.
4.
if ((c < '0' && c != '-' && c != '.') ||
                         (c < 'A' && c > '9') ||
                         (c > 'Z' && c < 'a' && c != '_') ||
                         (c > 'z'))


всю функцию можно было заменить одной строчкой. но кому-то же было нечем заняться. а чо, "летает" ведь. а то, что в этом спагетти кому-то копаться придется, так кого это колышет.Воспринимаю это как жалоба на криворуких программеров, которые делали систему до Вас... Ну что-же, всякое в жизни случается... Она не всегда такая какой нам хочется её видеть...
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38867592
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex KuznetsovА где я сказал, что у меня не на стороне сервера реализована бизнес логика?
а где я сказал, что она у тебя реализована там-то и там-то?

Alex Kuznetsov И при чём здесь вообще место реализации бизнес логики?
а при том, что использование хибернейта не исключает использование нативных средств сервера.

Alex Kuznetsov Технология должна оптимально решать те или иные задачи...
аминь

Alex KuznetsovОпять-же, что мешает мне применять ORM отдельно от Hibernate???
ничего. покажи свой, заценим.


Alex KuznetsovВоспринимаю это как жалоба на криворуких программеров
вообще-то это был намек на то, что все проблемы от граждан, которые считают, что усердие и труд все перетрут.
это я сейчас не про кого-то конкретно. так рассуждаю в слух просто о подходах к выбору средств.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38869018
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
public abstract class AbstractBusinessObject implements IBusinessObject {

    private int objectState;
    protected Object boID = null;

    public AbstractBusinessObject() {
        objectState = BOStates.Empty;
    }

    public AbstractBusinessObject(Object anID) {
        objectState = BOStates.Empty;
        this.boID = anID;
    }

    @Override
    public int getObjectState() {
        return objectState;
    }

    @Override
    public void setObjectState(int objectState) {
        if (this.objectState == BOStates.Created) {
            return;
        }
        this.objectState = objectState;
    }

    @Override
    public Object getID() {
        return boID;
    }

    @Override
    public void setID(Object anID) {
        boID = anID;
    }
}



Реализация записи из ленты новостей
Это простейший объект, который не требует каких-либо серьёзных выборок из базы.
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.
public class News extends AbstractBusinessObject {

    private Timestamp newsdt = null;
    private String title = null;
    private String body = null;
    
    public News(){
	newsdt = new Timestamp(System.currentTimeMillis());
    }
    
    public Timestamp getNewsdt() {
	return newsdt;
    }

    public void setNewsdt(Timestamp newsdt) {
	this.newsdt = newsdt;
    }

    public String getTitle() {
	return title;
    }

    public void setTitle(String title) {
	this.title = title;
    }

    public String getBody() {
	return body;
    }

    public void setBody(String body) {
	this.body = body;
    }

    @Override
    public List<Object> getCreateParameters() {
	ArrayList<Object> params = new ArrayList<>();
	params.add(this.getNewsdt());
	params.add(this.getTitle());
	params.add(this.getBody());
	return params;
    }

    @Override
    public List<Object> getUpdateParameters() {
	ArrayList<Object> params = new ArrayList<>();
	params.add(this.getTitle());
	params.add(this.getBody());
	params.add(this.getID());
	return params;
    }

    @Override
    public List<Object> getDeleteParameters() {
	ArrayList<Object> params = new ArrayList<>();
	params.add(this.getID());
	return params;
    }

}



Бизнес Модель
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.
public class NewsModel extends SQLDataBaseModel {

    private boolean forSite;
    
    public NewsModel() throws SQLManagerCreationException
    {
	forSite = false;
    }    
    
    public void setForSite(boolean forSite) {
	this.forSite = forSite;
    }   
    
    @Override
    protected List<Object> getRetrieveParameters() {
	return null;
    }

    @Override
    protected void processRetrieveOutParameters() {
    }

    @Override
    protected IBusinessObject getItemFromDBRecord(ResultSet rs) {
	News o = new News();
	try {
	    o.setID(rs.getInt(1));
	    o.setNewsdt(rs.getTimestamp(2));
	    o.setTitle(rs.getString(3));
	    o.setBody(rs.getString(4));
	} catch (SQLException ex) {
	    AppLogger.log("NewsModel",ex);
	}
	return o;
    }

    @Override
    protected String getCreateStatementText() {
	return "insert into news(newsdt, newstitle, newsbody) values(?,?,?)";
    }

    @Override
    protected String getRetrieveStatementText() {
	return "select newsid, newsdt, newstitle, newsbody from news order by newsdt desc"+(forSite?" limit 20":"");
    }

    @Override
    protected String getUpdateStatementText() {
	return "update news set newstitle = ?, newsbody = ? where newsid = ?";
    }

    @Override
    protected String getDeleteStatementText() {
	return "delete from news where newsid = ?";
    }

    @Override
    protected String getRetrieveOneStatementText() {
	return "select newsid, newsdt, newstitle, newsbody from news where newsid = ?";
    }
    
}





Ну и для примера что-нибудь посложнее - покажи как на хибере выборку данных сделать...
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.
public class BusSchemeModel extends SQLDataBaseModel {

    private int busid = 0;
    private short rows = 0;
    private short columns = 0;
    private short lastrowcolumns = 0;
    private long tripid = 0;

    public BusSchemeModel() throws SQLManagerCreationException{
        super();
    }

    public void setBusid(int busid) {
        this.busid = busid;
        this.tripid = 0;
    }

    public void setTripid(long tripid) {
        this.tripid = tripid;
    }

    public int getBusid() {
        return busid;
    }

    public short getRows() {
        return rows;
    }

    public short getColumns() {
        return columns;
    }

    public short getLastrowcolumns() {
        return lastrowcolumns;
    }

    @Override
    protected List<Object> getRetrieveParameters() {
        ArrayList<Object> params = new ArrayList<>();
        params.add(tripid == 0 ? busid : tripid);
        return params;
    }

    @Override
    protected void processRetrieveOutParameters() {
    }

    @Override
    protected IBusinessObject getItemFromDBRecord(ResultSet rs) {
        BusScheme bo = new BusScheme();
        try {
            bo.setID(rs.getLong(1));
            bo.setBusid(rs.getInt(2));
            bo.setSeatrow(rs.getShort(3));
            bo.setSeatcolumn(rs.getShort(4));
            bo.setSeatnumber(rs.getString(5));
            updateSchemeParameters(bo);
        } catch (SQLException ex) {
            AppLogger.log(this.getClass().getName(), ex);
        }
        return bo;
    }

    @Override
    protected String getCreateStatementText() {
        return tripid == 0 ? "insert into busscheme(busid, seatrow, seatcolumn, seatnumber) values(?,?,?,?)" : null;
    }

    @Override
    protected String getRetrieveStatementText() {
        return tripid == 0 ? "select busseatid, busid, seatrow, seatcolumn, seatnumber from busscheme where busid = ? order by seatrow, seatcolumn"
                : "select bs.busseatid, bs.busid, bs.seatrow, bs.seatcolumn, bs.seatnumber "
                + "from trip as t "
                + "inner join busscheme as bs on bs.busid = t.busid "
                + "where t.tripid = ? order by seatrow, seatcolumn";
    }

    @Override
    protected String getUpdateStatementText() {
       return tripid == 0 ? "update busscheme set seatnumber = ? where busseatid = ?" : null;
    }

    @Override
    protected String getDeleteStatementText() {
        return tripid == 0 ? "delete from busscheme where busid = ?" : null;
    }

    @Override
    protected String getRetrieveOneStatementText() {
        return tripid == 0 ? "select busseatid, busid, seatrow, seatcolumn, seatnumber from busscheme where busseatid = ?" : null;
    }

    private void updateSchemeParameters(BusScheme bo) {
        if (bo.getSeatrow() > rows) {
            rows = bo.getSeatrow();
            lastrowcolumns = bo.getSeatcolumn();
        } else if (bo.getSeatrow() == rows) {
            lastrowcolumns = bo.getSeatcolumn();
        }
        if (bo.getSeatcolumn() > columns) {
            columns = bo.getSeatcolumn();
        }
    }

}

...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38869034
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Капец. Сколько букв.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38869042
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
В смысле?
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38869050
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boilerplate.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38869061
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBoilerplate.C`est La Vie, хотелось-бы избавиться от него, но ...
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38869385
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov,

собственно вопросов больше нет. вот уж точно, лучше разок показать код, чем растекаться мыслью по древу на трех страницах

Alex Kuznetsov,покажи как на хибере выборку данных сделать...
чего конкретно показывать? у тебя там все запросы элементарны, примеров масса. я серьезно. ну т.е. я могу написать, но смысл? ну вот
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
@Override
    public Evaluation loadEvaluationByID(Integer id) {
        return (Evaluation) sessionFactory.getCurrentSession()
                .createQuery("from Evaluation e " +
                        "left join fetch e.model m " +
                        "left join fetch m.make " +
                        "left join fetch e.body " +
                        "left join fetch e.engine " +
                        "left join fetch e.options " +
                        "left join fetch e.searchResults " +
                        "where e.id = :id")
                .setParameter("id", id)
                .uniqueResult();
    }





пару слов о птичках.
собственно это я и имел в виду - для какой-то элементарщины из селектов и инсертов наворачивается глупый велосипед с магическими константами (setObjectState про энумы вообще слыхали, не? или у вас там legacy code), кучей sql в ява-коде, доступом к полям по индексу (много спичек наэкономили?) и т.д. Вы бы, батенька, уж хоть на ibatis/mybatis посмотрели, там тоже много рутины, но все равно небо и земля по сравнению с. вот честно, без обид.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38869419
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Алекс Кузнецов и все.

Вот тут как-то уж очень некрасиво.

Код: java
1.
public List<Object> getCreateParameters() {..}



Неужели мы хоть-как-то априори не можем знать какой список базовых классов или интерфейсов мы получим?

Вообще моё замечание было даже не в плоскости хибернейт. Просто SQL исторически создавался
как проблемно-ориентированный язык. На нём в 99% случаев делались отчётости. Самого разного
вида. Моя работа в *Телекомах заключалась в большинстве случаев в разработке, отладке и суппорте
подобных запросов. И бойлерплейт заключается в том что те задачи которые я решал в 10 строк на SQL.
Java разработчик решает в 100 строчек и ОЧЕНЬ ГОРДИТСЯ этим. Ребята! Родные! Вы-же инженеры
пятак вашу распроткак. Неужели вы не форсируете Groovy, Scala? Неужели вам не интересен различный DSL? Неужели вам
в кайф писать безсмысленные геттеры и сеттеры назначение которых сегодня давно уже утеряно
как утерян смысл "астролябии" и "компаса" для навигации? Неужели у вас хвататет смелости
хвастаться перед другими разработчиками таким страшным нагромождением кода. Этож
даже не кодинг! Это ритуал древних жрецов! И бох с ним с батисом. У него тоже свой бойлерплейт
существует но батис по крайней мере акцентирует внимание на том что ГЛАВНЫМ в задаче с БД
является именно запрос на языке БД. Батис вам позволяет ДУМАТЬ в алгебре кортежей. А не прятать
подкапот стыдливо самую важную часть процессинга БД. Батис постулирует задачу как идущую
ОТ БД к Java модели. А хибер - наоборот.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38869479
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonБатис постулирует задачу как идущую
ОТ БД к Java модели. А хибер - наоборот.
с этим ничего не сделать.
Т.к. это в голове программиста. Они разные)).
ООП продвинутый программист не напишет SQL _сложный_ запрос.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38869491
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ООП продвинутый программист не напишет SQL _сложный_ запрос.
никакой прямой связи. по-твоему человек, хорошо знающий ООП, не может знать хорошо SQL? ну глупость же. это как сказать, что хороший пловец - не сможет ездить на велосипеде.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38869509
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaне сможет ездить на велосипеде.
ООП, шаблоны, SQL и программирование - это не велосипед для 3-го класса второй четверти.
Начнём с того, что программирование, это НЕ ремесло)).
Велосипед, это хибер + CRUD
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38869516
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ООП, шаблоны, SQL и программирование - это не велосипед для 3-го класса второй четверти.
а как на счет 5 класса 3-ей четверти
YouTube Video
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38869622
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha,
))
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38870041
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton2 Алекс Кузнецов и все.
Вот тут как-то уж очень некрасиво.
Код: java
1.
public List<Object> getCreateParameters() {..}


Неужели мы хоть-как-то априори не можем знать какой список базовых классов или интерфейсов мы получим?

А в чём собственно некрасивость, если абстрактная модель действительно не знает сколько тех или иных параметров будет использовано при создании записей в таблицах БД конкретной моделью и сколько будет и какого типа будут конкретные поля у конкретного объекта?
Я понимаю, что выгляжу ретроградом и эдаким динозавром в данном случае, тем не менее, считаю, что такой подход имеет право на существование, да и на практике даёт ожидаемый результат.

PS. Убедили старого посмотреть в сторону чего-то нового (а может и не очень)...
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38870779
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsovmayton2 Алекс Кузнецов и все.
Вот тут как-то уж очень некрасиво.
Код: java
1.
public List<Object> getCreateParameters() {..}


Неужели мы хоть-как-то априори не можем знать какой список базовых классов или интерфейсов мы получим?

А в чём собственно некрасивость, если абстрактная модель действительно не знает сколько тех или иных параметров будет использовано при создании записей в таблицах БД конкретной моделью и сколько будет и какого типа будут конкретные поля у конкретного объекта?
Я понимаю, что выгляжу ретроградом и эдаким динозавром в данном случае, тем не менее, считаю, что такой подход имеет право на существование, да и на практике даёт ожидаемый результат.

PS. Убедили старого посмотреть в сторону чего-то нового (а может и не очень)...
если есть время, посмотрите тут - http://javalite.io/activejdbc
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38870783
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник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? а если несколько таблиц, как он выбирает какую на что проецировать?
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38870797
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, то при загрузке приложения, база проверяется на наличие одноименной таблицы, автоматически определяет колонки и тд. Для легаси кода и энтерпрайз таблиц не очень подходит, хотя можно и указать имя таблицы через аннотацию, вроде
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38870872
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл никЕсли класс наследуется от Model, то при загрузке приложения, база проверяется на наличие одноименной таблицы, автоматически определяет колонки и тд.
ясно. меня смутило, что у них имена разные, но видно для одной таблицы пофиг какое имя у класса и таблицы
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38870886
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174забыл никЕсли класс наследуется от Model, то при загрузке приложения, база проверяется на наличие одноименной таблицы, автоматически определяет колонки и тд.
ясно. меня смутило, что у них имена разные, но видно для одной таблицы пофиг какое имя у класса и таблицы

Нет, там все интереснее. Фишка из руби-он-рейлс, типа плюрал нэймс, или что-то такое. Смысл в том, что если класс Юзер - то ищет таблицу Юзерс, и тд. А множественное для Person - будет People, если честно не понимаю такой заморочки:)
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38870926
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
авторВообще моё замечание было даже не в плоскости хибернейт. Просто SQL исторически создавался
как проблемно-ориентированный язык. На нём в 99% случаев делались отчётости. Самого разного
вида. Моя работа в *Телекомах заключалась в большинстве случаев в разработке, отладке и суппорте
подобных запросов. И бойлерплейт заключается в том что те задачи которые я решал в 10 строк на SQL.
Java разработчик решает в 100 строчек и ОЧЕНЬ ГОРДИТСЯ этим. Ребята! Родные! Вы-же инженеры
пятак вашу распроткак. Неужели вы не форсируете Groovy, Scala? Неужели вам не интересен различный DSL? Неужели вам
в кайф писать безсмысленные геттеры и сеттеры назначение которых сегодня давно уже утеряно
как утерян смысл "астролябии" и "компаса" для навигации? Неужели у вас хвататет смелости
хвастаться перед другими разработчиками таким страшным нагромождением кода. Этож
даже не кодинг! Это ритуал древних жрецов! И бох с ним с батисом. У него тоже свой бойлерплейт
существует но батис по крайней мере акцентирует внимание на том что ГЛАВНЫМ в задаче с БД
является именно запрос на языке БД. Батис вам позволяет ДУМАТЬ в алгебре кортежей. А не прятать
подкапот стыдливо самую важную часть процессинга БД. Батис постулирует задачу как идущую
ОТ БД к Java модели. А хибер - наоборот.
Вы абсолютно правы. Если развить вашу мысль, окажется что джава вообще не нужна во многих местах, куда ее пихают - намного проще взять postgresql и написать всю обработку данных на хранимых процедурах. Получится код с минимумом творчества (язык слишком тупой, творцу негде развернуться будет), каждая строка которого будет нести какую-то бизнес нагрузку, а не конфигурировать абстрактные фабрики паттернов через xml.
В 2000-x это еще имело какой-то смысл - один индус мог и работу с данными закодировать, и GUI. Сейчас пользовательский интерфейс делают на джаваскрипте, ему нужно только получить данные из базы в видe json. Держать для этого программистов, у которых перепаковка резалтсетов в json массивы превращается в подвиг с приключениями, для бизнеса дороговато выходит.
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38870939
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никесли есть время, посмотрите тут - http://javalite.io/activejdbc Эдакую хренопень мы делали на курсах Advanced Java Programming в Лондоне в далёком 2001 году с Carlo Lazzaris, который в SUN Microsystems отвечал за разработку спецификаций версии 1.2 и 1.3.
И с помощью метаданных вытаскивали информацию о таблицах и строили стандартного вида запросы и т.д. Кроме того, в силу всё-таки спецификации языка и отсутствия некоторых вещей, которые есть сейчас, таких как например, аннотации, мы использовали рефлексию для установки/получения значений полей/свойств, а все бизнес сущности были порождены от абстрактного базового класса и реализовали именно бизнес логику обработки отдельного бизнес объекта. Работа с базой была вынесена в отдельный слой... Ну да ладно, что вспоминать-то и так всё ясно и понятно...

К сожалению (ну на мой консервативный взгляд), сейчас появилось довольно много "фрэймворкоюзеров", т.е. тех, кто знает как использовать различные фрэймворки, но не понимает сущности происходящих внутри них процессов...
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38870943
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы абсолютно правы. Если развить вашу мысль, окажется что джава вообще не нужна во многих местах, куда ее пихают - намного проще взять postgresql и написать всю обработку данных на хранимых процедурах. Получится код с минимумом творчества (язык слишком тупой, творцу негде развернуться будет), каждая строка которого будет нести какую-то бизнес нагрузку, а не конфигурировать абстрактные фабрики паттернов через xml.
В 2000-x это еще имело какой-то смысл - один индус мог и работу с данными закодировать, и GUI. Сейчас пользовательский интерфейс делают на джаваскрипте, ему нужно только получить данные из базы в видe json. Держать для этого программистов, у которых перепаковка резалтсетов в json массивы превращается в подвиг с приключениями, для бизнеса дороговато выходит.[/quot]

В связи с нововведениями в БД (в частности PostgreSQL), перепаковка JSON не нужна, можно хранить json как есть.
Причем по ним можнос строить индексы и делать запросы.
<:o)
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38870982
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Оракл 12 тоже JSON поддержка))
...
Рейтинг: 0 / 0
какое-то волшебство, хибенейт или пул?
    #38948659
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
таки дело было в утечках. исправил и все зашуршало как по маслу. так что хибер - ок и пул тоже ))))
...
Рейтинг: 0 / 0
63 сообщений из 63, показаны все 3 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / какое-то волшебство, хибенейт или пул?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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