powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate очень много одинаковых таблиц
25 сообщений из 47, страница 1 из 2
Hibernate очень много одинаковых таблиц
    #38255854
NetImperia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Подскажите пожалуйста. Пытаюсь изучить Hibernate. Покопавшись в старых темах, не обнаружил похожего вопроса.(если не заметил буду рад за ссылку)

Имеется проект. В нём > 200 одинаковых таблиц(совершенно одинаковая структура). Имена у них на подобии table_1, table_2 итд (таблицы могут автоматически добавляться)
В них находятся некоторые данные, которые выбираются по primary key.
Номер таблицы, выбирается по определённому алгоритму, на основе primary key ID.
Помимо этого, есть много таблиц в единичном экземпляре.

С теми таблицами которых один экземпляр, вопросов нет.

Но вот как замапить что не в 1 экземпляре (все эти table_XXX)? Может ли Hibernate вообще работать с такой структурой?
Хочется сделать что-то вроде 1 класса на все.


Заранее всем спасибо за ответы.
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38255865
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ещё какие-то таблицы помимо этих 200? Если нет, то и hibernate брать не за чем.
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38255872
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NetImperia,
я так понимаю у вас таким образом реализован шардинг, вроде в hibernate было что-то такое, посмотрите hibernate shards.
А так соглашусь с Blazkowicz, что стоит хорошо подумать, а нужен ли Вам hibernate?
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38255874
NetImperia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczЕсть ещё какие-то таблицы помимо этих 200? Если нет, то и hibernate брать не за чем.
В том и проблема что есть.
Как я писал выше: Помимо этого, есть много таблиц в единичном экземпляре.
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38255877
NetImperia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
just_vladimirNetImperia,
я так понимаю у вас таким образом реализован шардинг, вроде в hibernate было что-то такое, посмотрите hibernate shards.
А так соглашусь с Blazkowicz, что стоит хорошо подумать, а нужен ли Вам hibernate?

Именно. Спасибо за наводку. Сел читать.
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256029
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NetImperia,
Понять причину
Почему их много. И исправить.
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256154
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123NetImperia,
Понять причину
Почему их много. И исправить.
Оптимизаия производительности. Вычислить маленькую таблицу по ID и найти в ней запись намного быстрее чем найти запись в одной таблице размером в 200 раз больше. Банально дискового пространства может не хватать. Разные таблицы разбросаны по разным дискам. Продвинутые базы это умеют прозрачно, не затрагивая клиетский код. Здесь, вероятно, сделано вручную.
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256177
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczPetro123NetImperia,
Понять причину
Почему их много. И исправить.
Оптимизаия производительности. Вычислить маленькую таблицу по ID и найти в ней запись намного быстрее чем найти запись в одной таблице размером в 200 раз больше. Банально дискового пространства может не хватать. Разные таблицы разбросаны по разным дискам. Продвинутые базы это умеют прозрачно, не затрагивая клиетский код. Здесь, вероятно, сделано вручную.
да нету такого.
Чтобы справочник городов разбивали по буквам алфавита - ГородаА, ГородаБ - изврат))))
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256195
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123да нету такого.

Тебе виднее. Проект Hibernate Sharding тоже из пальца высосан. Ведь так никто не делает.

Petro123Чтобы справочник городов разбивали по буквам алфавита - ГородаА, ГородаБ - изврат))))
Кто говорил про "справочник"? Базу сети супермаркетов со всеми чеками за N лет видел когда-нибудь?
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256234
ant74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczОптимизаия производительности. Вычислить маленькую таблицу по ID и найти в ней запись намного быстрее чем найти запись в одной таблице размером в 200 раз больше. Банально дискового пространства может не хватать. Разные таблицы разбросаны по разным дискам. Продвинутые базы это умеют прозрачно, не затрагивая клиетский код. Здесь, вероятно, сделано вручную.Что же это за СУБД, если такую оптимизацию нельзя на уровне БД реализовать. Как вариант через view или stored procedure.
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256237
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ant74BlazkowiczОптимизаия производительности. Вычислить маленькую таблицу по ID и найти в ней запись намного быстрее чем найти запись в одной таблице размером в 200 раз больше. Банально дискового пространства может не хватать. Разные таблицы разбросаны по разным дискам. Продвинутые базы это умеют прозрачно, не затрагивая клиетский код. Здесь, вероятно, сделано вручную.Что же это за СУБД, если такую оптимизацию нельзя на уровне БД реализовать. Как вариант через view или stored procedure.
+1
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256253
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ant74Что же это за СУБД, если такую оптимизацию нельзя на уровне БД реализовать.
Любое говно мамонта. Мало что ли legacy систем?

ant74Как вариант через view или stored procedure.
Да, можно попробовать логику внутри view реализовать. Но получится ли? Да, и вопрос не о том был.
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256279
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
что нам за аффтора додумывать?
Согласись, выглядит странно:
- долго ищет таблице = 1 решение - а нафига индексы? Потом, кластерный индекс? Потом железо? Потом OLAP\OLTP. Потом решения ОРАКЛ\Сиквел \ партиционирование.
А потом уже ломать проект и делать велосипед у программиста.
"Если ты Сервер, не суетись под клиентом (с)"
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256314
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не вдаваясь в подробности, а нафига это надо, могу предложить такую схему решения:
- описать суперкласс для одинаковых таблиц
- с помощью cglib нагенерить классы, примерно так
Код: java
1.
2.
3.
		Enhancer e = new Enhancer();
		e.setSuperclass(superСlass);
		Class tableXXXClass = e.createClass();


- нагенерить меппинги названиями нагенеренных классов tableXXXClass и добавить их в конфигурацию
Код: java
1.
2.
3.
4.
		Configuration cfg ...
		cfg.addXml(String xml)
		// или
		cfg.addDocument(Document doc)


Как потом с этим работать - фиг знает, hql врядли заработает, может быть, Criteria взлетит.
Скорее всего, придется использовать SQLQuery, а тогда нафига всё это надо?
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256460
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
не пойму, что Вас смущает, описанная автором ситуация вполне распространенный подход по реализации партиционирования для бедных. Например, может быть у человека нет нужной лицензии или используется PostgreSQL, где прямо в доке предлагают создавать кучу таблиц. Более того, тот же hibernate вообще не умеет использовать нативные механизмы партиционирования СУБД.

Или Вам непонятно зачем нужно партиционирование в принципе?

ant74,
я думаю вариант со stored procedure вполне себе жизненный. Когда для сущности, которая шардится/партиционируется весь CRUD вынести в процедуры.
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256475
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirИли Вам непонятно зачем нужно партиционирование в принципе?
расшифровываю.
Это вопрос по архитектуре. Там принципы - от простого к сложному .
Т.е. сначала БЕЗ партиций в любом виде. Потом, обосновав - на уровне СУБД.
Потом уже на уровне Java.
Я ведь выше привёл линейку масштабирования.
Если тут форум Java, это не значит, что БД - импотент. (т.е. у заказчика на терабайт данных нет 1000 баксов на СУБД)
Логично?
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256481
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirPostgreSQL, где прямо в доке предлагают создавать кучу таблиц
пруфлинк?
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256499
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123расшифровываю.
Это вопрос по архитектуре. Там принципы - от простого к сложному .
Т.е. сначала БЕЗ партиций в любом виде. Потом, обосновав - на уровне СУБД.
Потом уже на уровне Java.
Я ведь выше привёл линейку масштабирования.
Если тут форум Java, это не значит, что БД - импотент. (т.е. у заказчика на терабайт данных нет 1000 баксов на СУБД)
Логично?
Не уловил Ваших мыслей. Откуда домыслы что проект автора уже не прошел все простые варианты на тему индексов и т.д.?

Petro123just_vladimirPostgreSQL, где прямо в доке предлагают создавать кучу таблиц
пруфлинк?
http://www.postgresql.org/docs/9.1/static/ddl-partitioning.html
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256520
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimir,
вот же любители спорить)).
Первый мой пост аффтару:
авторNetImperia,
Понять причину
Почему их много. И исправить.
пусть скажет причину.
Так понятно?
ЗЫ.
Я кстати, ни с кем тут не спорил). Даже с тем что Хибер выбросить.
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256591
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
понять причину - я задал уточняющий вопрос, являются ли данные множественные таблицы оптимизацией основанной на шардинге, на что получил утвердительный ответ. При этом замечу, что Ваш вопрос о причине было несколько позже :) Или Вы о какой-то другой причине?

ЗЫ: да Вы тоже смотрю не проч по спорить ;)
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256609
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimir,
))
ну дак мы все разные.
Тебя ответ - "Да" - устроил.
Меня, как и вот тут.....
партиции и производительность
- не устраивает.
Поэтому, не будем толкаться локтями).
ЗЫ. Спор без автора топика - мазохизм)).
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256630
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ЗЫ. Спор без автора топика - мазохизм)).
Вот с этим соглашусь :-)
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256709
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NetImperiajust_vladimirNetImperia,
я так понимаю у вас таким образом реализован шардинг, вроде в hibernate было что-то такое, посмотрите hibernate shards.
А так соглашусь с Blazkowicz, что стоит хорошо подумать, а нужен ли Вам hibernate?

Именно. Спасибо за наводку. Сел читать.

Шардинг — это когда на разных серверах и в разных базах. А это — просто хрень какая -то.
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38256992
NetImperia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я удивлён что такие споры из-за моего вопроса.

Приоткрою немного инфы. :)

Скажу сразу. Это не публичный проект.
Изначально проект был 1 сервер (за 300$ в месяц) + MySQL 3 + PHP 3. Тогда и не планировалось что данных будет так много.
Данных становилось всё больше и больше. И они перестали вмещаться на один винт. Помимо этого, поиск даже по индексу занимал очень много времени. Так как решать надо было быстро, да и денег было мало. В результате просто добавили винты и таблицы поделены на части.

Через некоторое время проект медленно начали переписывать на Java. Потом проект был заброшен. Но продолжал работать.
И так всё это продолжалось довольно долго. В результате это всё превратилось в полное извращение.

Сейчас это монстр из 7 компов в каждом 36 винтов. Часть на PHP, часть на Java и есть даже кусок на ruby(кто на нём написал до сих пор не ясно. Очень хочется поймать его и кое что оторвать). + MySQL 5

Вообщем 100% пример. Как нельзя делать проекты.

Недавно было решено таки закончить с перепиской на Java. Обозначалось это фразой: Ты у нас сейчас свободен. Вот и иди занимайся :) Попутно решил изучить Hibernate получше.

Как понимаете сейчас весь это зоопарк выглядит просто дико. Но что есть то есть.

Понятное дело что по хорошему надо сделать тупо кластер. Но сейчас нет денег на это. У проекта очень ограниченный бюджет.

По поводу структуры:

Для тех кто

По поводу всяких Oracle итд. Опять-же всё упирается в деньги.
...
Рейтинг: 0 / 0
Hibernate очень много одинаковых таблиц
    #38257008
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MySQL 5 умеет всяческий partitioning. Может действительно всё в одну таблицу слить? (но оставить в разных файлах как и есть).
...
Рейтинг: 0 / 0
25 сообщений из 47, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate очень много одинаковых таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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