Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с mapping Hibernate / 25 сообщений из 27, страница 1 из 2
28.12.2016, 08:51
    #39376537
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
Всем доброго дня!
Есть задача, где требуется работать с данными в БД, без физических классов Entity.
В проекте используется Hibernate + Spring. Работаю недавно, поэтому прошу снисхождения.
Было принято решение использовать возможность маппинга в Hibernate, описываются XML-entity, подкидываются в Configuration, затем идет buildSessionFactory.
В связи с этим вопросы:
1) Можно ли как-то сделать buildSessionFactory без файла hibernate.cfg? Как я понимаю в нашем проекте Hibernate соединяется с БД через приложение, и раньше этого файла в нашем проекте не было. Задача, чтобы buildSessionFactory происходил основываясь на уже готовых настройках.
2) Что происходит с текущими сессиями Hibernate при buildSessionFactory? Они отваливаются?
...
Рейтинг: 0 / 0
28.12.2016, 09:33
    #39376566
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchikтребуется работать с данными в БД, без физических классов Entity.
подробнее
aidynchikВ проекте используется Hibernate + Spring.
подробнее. Как сейчас используются "физические классы"?
Или проект с нуля?
...
Рейтинг: 0 / 0
28.12.2016, 09:35
    #39376568
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
Petro123,

в общем задача - пользователь может создавать справочники.
Соответственно мы можем создать таблицы, но классы-Entity не можем, так?
...
Рейтинг: 0 / 0
28.12.2016, 09:58
    #39376584
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchik,
Hibernate умеет вот так
https://docs.jboss.org/hibernate/stable/core.old/reference/en/html/persistent-classes-dynamicmodels.html
Но есть очень сильные сомнения что вам тут Hibernate вообще нужен.
...
Рейтинг: 0 / 0
28.12.2016, 10:07
    #39376590
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
Blazkowiczaidynchik,
Hibernate умеет вот так
https://docs.jboss.org/hibernate/stable/core.old/reference/en/html/persistent-classes-dynamicmodels.html
Но есть очень сильные сомнения что вам тут Hibernate вообще нужен.

да, я знаю, что он так умеет, я же написал, что мы и используем маппинг. Вот мой код
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        Configuration cfg = new Configuration().configure().addResource("bsbconnect/kz/models/customer.hbm.xml");
        SessionFactory sessions = cfg.buildSessionFactory();
        Session s = sessions.openSession();
        Transaction tx = s.beginTransaction();
        Map david = new HashMap();
        david.put("fio", "David");
        david.put("phone", "87071070095");
        david.put("address", "Almaty");
        s.save( "Customer", david);
        tx.commit();
        s.close();



Но чтобы сделать buildSessionFactory() запрашивался hibernate.cgf.xml, который мне пришлось создать и заново прописать там настройки, хотя они прописаны в application.properties.
Вот я и спрашиваю - можно ли обойтись без hibernate.cgf.xml и не прописывая настройки, как-то прицепиться к текущему Configuration? Ведь как-то hibernate на данный момент к базе цепляется.

И что будет с другимим сессиями при buildSessionFactory()? Приложение многопользовательское
...
Рейтинг: 0 / 0
28.12.2016, 10:09
    #39376591
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchik,

Пример конфигурации в рантайме
http://stackoverflow.com/a/22332348
...
Рейтинг: 0 / 0
28.12.2016, 10:12
    #39376592
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
Blazkowiczaidynchik,

Пример конфигурации в рантайме
http://stackoverflow.com/a/22332348
Да мне не нужно это... Вы привели пример по сути, того же hibernate.cfg.xml, просто налету.
У меня прописаны настройки к базе в файле application.properties, Spring boot подхватывает его и коннектится к базе, вот я и хочу получить доступ к buildSessionFactory() не настраивая hibernate заново. Зачем мне прописывать настройки второй раз, если они уже прописаны для спринга.
Как это сделать?
...
Рейтинг: 0 / 0
28.12.2016, 10:25
    #39376606
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchik,

Тогда я вам настойчиво рекомендую начать читать исходники.
StandardServiceRegistryBuilder - именно тот файл, который связывает конфигурацию и hibernate.cfg.xml.
Но всё что он делает, это тупо загружает значения в Configuration.properties
Все нужные методы в Configuration - публичные. Отнаследоваться и переопределеить - не проблема.
...
Рейтинг: 0 / 0
28.12.2016, 10:28
    #39376608
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
Blazkowicz,

спасибо...
а что по поводу сессий скажете?
Будут ли проблемы у пользователей соединенных к базе при buildsessionfactory? нигде не могу найти информацию об этом... глобальное ли это будет изменение
...
Рейтинг: 0 / 0
28.12.2016, 10:35
    #39376617
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchikа что по поводу сессий скажете?
Будут ли проблемы у пользователей соединенных к базе при buildsessionfactory? нигде не могу найти информацию об этом... глобальное ли это будет изменение
Вы же новую SessionFactory делаете - все старые сессии будут работать со старой SessionFactory. Новые - с новой. На старые сессии создание новой SessionFactory никак не повлияет.

Но, надо внимательно посмотреть к чему именно там кэши привязаны, например. То есть старые сессии могут работать со старыми кешами, которые уже не актуальные из-за новых сессий. Это не точно. Это то что я бы перепроверил.
...
Рейтинг: 0 / 0
28.12.2016, 10:50
    #39376631
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
Blazkowicz,

В этом и дело, мне нужно чтобы все пользователи "получили" изменения.
Могу я как-то сделать билд текущего Sessionfactory? Что-то типа
Код: java
1.
2.
3.
Код по получению current sessionfactory

CurrentSessionFactory = cfg.buildsessionfactory


Возможно ли такое и что будет у пользователей, ошибка или хайбернет подтянет новый ентити молча
...
Рейтинг: 0 / 0
28.12.2016, 10:52
    #39376636
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchikВ этом и дело, мне нужно чтобы все пользователи "получили" изменения.

Нужны очень короткие транзакции. Вот прям посреди транзакции подменить, это уже как-то слишком. Не находите?
...
Рейтинг: 0 / 0
28.12.2016, 11:03
    #39376643
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
Похоже что нет, нашел что он immutable
...
Рейтинг: 0 / 0
28.12.2016, 11:12
    #39376654
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchikPetro123,

в общем задача - пользователь может создавать справочники.
Соответственно мы можем создать таблицы, но классы-Entity не можем, так?
пока непонятно.
Прогаммист тоже может создать справочники.
Как с остальным?
- события вновь созданного справочника
- ГУИ к справочнику?
- JOIN и бизнес-логика для НОВОГО справочника?
...
Рейтинг: 0 / 0
28.12.2016, 11:15
    #39376659
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchik,
на второй вопрос не ответили
20055241
...
Рейтинг: 0 / 0
28.12.2016, 11:33
    #39376676
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
Petro123,
проект не с нуля. Просто нужен модуль справочников, чтобы каждый раз не дергать программистов, пользователь должен иметь возможность самому создавать справочники.
GUI будет строить динамически, подобный проект уже реализован на Дельфи, но там все намного проще в плане оперирования динамическими селектами.
Сейчас просто выбираем метод хранения данных
...
Рейтинг: 0 / 0
28.12.2016, 11:40
    #39376689
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchik,

Hibernate для работы со справочниками не нужен.
...
Рейтинг: 0 / 0
28.12.2016, 11:43
    #39376698
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchikпроект уже реализован на Дельфи
оригинально. У вас там есть ОРМ?
...
Рейтинг: 0 / 0
28.12.2016, 11:44
    #39376699
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
Petro123,

Дельфи плюс Оракл, разумеется там нет hibernate
...
Рейтинг: 0 / 0
28.12.2016, 11:46
    #39376701
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchikпроект уже реализован на Дельфи, но там все намного проще в плане оперирования динамическими селектами.
вот и ПОВТОРИТЕ его на Java без велосипедов и маппинга....и этой темы тоже
IMHO
...
Рейтинг: 0 / 0
28.12.2016, 11:52
    #39376713
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
Petro123, Blazkowicz

извините, изначально я выразился не совсем правильно. Работаю недавно не только с Hibernate, а с Джава вообще... вот так посадили на проект...
потому вы не могли бы подсказать каким способом можно оперировать данными? Через JDBC-драйвер?
Hibernate, я так понял, изначально используется потому что проект должен работать под любой БД, то есть нативные селекты нежелательны.
...
Рейтинг: 0 / 0
28.12.2016, 12:04
    #39376728
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchik,

JooQ, QueryDSL, вроде, тоже под разные БД умеют. Помимо этого не обязательно совсем отказываться от Hibernate. Просто вот такие вот задачи, проще на каком-нибудь стандартном SQL реализовать без изысков.
...
Рейтинг: 0 / 0
28.12.2016, 12:07
    #39376732
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchikРаботаю недавно не только с Hibernate, а с Джава вообще... вот так посадили на проект...
IMHO
изначально хорошо бы повторить проект успешно работающий (дельфи).
А потом уже изучать хибер.
Тем более что маппинг в динамике тут редко используется.
aidynchikпотому вы не могли бы подсказать каким способом можно оперировать данными? Через JDBC-драйвер?
Hibernate, я так понял, изначально используется потому что проект должен работать под любой БД, то есть нативные селекты нежелательны.
приведи пример разных select из твоего delphi проекта.
У вас delphi проект под какой бд не работает?
...
Рейтинг: 0 / 0
28.12.2016, 12:11
    #39376735
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
aidynchikGUI будет строить динамически
тоже пока не думали и не пробовали в Java, хотя в дельфи работает?
...
Рейтинг: 0 / 0
28.12.2016, 12:13
    #39376738
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с mapping Hibernate
Petro123,

на Оракле, и там частенько в селектах встречаются оракловые штучки, к примеру connect by prior.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с mapping Hibernate / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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