powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Запись Properties в БД
42 сообщений из 42, показаны все 2 страниц
Запись Properties в БД
    #39819184
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Есть класс Event:
Код: java
1.
2.
3.
4.
5.
6.
7.
public class Event implements Serializable {
   
    private Long id;
    private Properties properties;
    ...

}


Необходимо сохранять объекты класса Event в БД через Spring + Hibernate.

В каком виде лучше хранить данную сущность:?
1. Одна таблица Event, но тогда поле properties будет как BLOB.
2. Сделать две таблицы, отношение один ко многим. В 1-ой таблице id, во 2-ой id, key, value. Соответственно сначала добавляем запись в 1-ю, получаем id и записываем соответствующую запись в 2-ю таблицу.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819191
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,
Ты же уже спрашивал.
Хранить в бд не сущности бизнеса - глупость.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819198
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Molasar,
Ты же уже спрашивал.
Хранить в бд не сущности бизнеса - глупость.

Про то, в каком виде хранить Properties, я не спрашивал.
Не понял про не сущности бизнеса - глупость.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819206
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarПро то, в каком виде хранить Properties, я не спрашивал.было тут про то как хранить мессаги в базе. Не твоё?
...
В базе хранят бизнес сущности - Паровоз, Выленки, Контрагент, ....
Но никак не Event, Handle, переменная, функция.
Понятно?
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819210
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123MolasarПро то, в каком виде хранить Properties, я не спрашивал.было тут про то как хранить мессаги в базе. Не твоё?
...
В базе хранят бизнес сущности - Паровоз, Выленки, Контрагент, ....
Но никак не Event, Handle, переменная, функция.
Понятно?

Мессаги моё)))) Но тут конкретно про таблицы и схему отношений.

В моём случае объекты Event будут содержать информацию о событиях, происходящих в системе, для дальнейшего аудита.
Если всё записывать в лог-файл, то неудобно будет потом делать выборку.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819213
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, в моём случае нужно использовать две таблицы, чтобы можно было по полям key, value делать выборку данных.
BLOB - двоичный тип, доступа к значением полей нет. Получается нужно скачать всю БД в List<Event> и только потом обрабатывать данные. Что очень плохо)
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819214
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarМессаги моёссыль дай
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819218
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,
Нужна отдельная база и писать нужно туда без тормозов т.к. событий миллион в минуту.
Аудит логов не относится к ИС?
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819219
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123MolasarМессаги моёссыль дай
https://www.sql.ru/forum/1311504/voprosy-po-activemq
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819223
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Molasar,
Нужна отдельная база и писать нужно туда без тормозов т.к. событий миллион в минуту.
Аудит логов не относится к ИС?
Так и будет: выделенная машина под аудит и биллинг. Под типовые запросы на запись - хранимые процедуры.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819227
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Аудит логов не относится к ИС?если нет, то пиши без хибера. Быстрее будет.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819249
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123если нет, то пиши без хибера. Быстрее будет.Petro123 взломали?
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819275
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
) дык ты всегда против хибера. А я и то и то люблю).
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819318
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

автор) дык ты всегда против хибера. А я и то и то люблю).

За что можно любить хибер?:) Он же тяжелый с кучей дополнительных абстракций в сравнении с jdbc.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819336
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusЗа что можно любить хибер?:) Он же тяжелый с кучей дополнительных абстракций в сравнении с jdbc.+медленный
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819338
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusЗа что можно любить хибер?:)вообще - для десктопа, для не знающих sql - шанс что-то сделать...
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819341
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

авторвообще - для десктопа, для не знающих sql - шанс что-то сделать...

Действительно шанс:)

hibernate.cfg.xml писать с маппингами и конфигами для коннекшена к бд. Аннотации писать с таблицами, id...Это минимум как я понимаю:)
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819352
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusЗа что можно любить хибер?:) Он же тяжелый с кучей дополнительных абстракций в сравнении с jdbc.

За что можно любить java?:) Она же тяжелая с кучей дополнительных абстракций в сравнении с ....

Каждый инструмент нужно использовать под то, для чего он разрабатывался. А хибер разрабатывался для клепания формочек с базовым CRUD для энтерпрайз админок, с чем он блестяще и справляется.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819354
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mr_virtusPetro123,

автор) дык ты всегда против хибера. А я и то и то люблю).

За что можно любить хибер?:) Он же тяжелый с кучей дополнительных абстракций в сравнении с jdbc.
эта куча всего избавляет Вас от повторяющегося кода. у Вас 20 сущностей в системе и вам для каждой сущности придется писать CRUD операции на jdbc. Это же жестяк. А потом еще предусмотреть расширение другими кверями. От этого код раздувается и все больше вырисовывается велосипед который придумали. Юзайте просто нативный sql с хибером. в чем беда? Хотя где шансы что запросы с jdbc будут оптимальными?
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819357
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,

авторА хибер разрабатывался для клепания формочек с базовым CRUD для энтерпрайз админок, с чем он блестяще и справляется.

Просто не вижу преимуществ над чистым JDBC для этих же целей. Базовый CRUD - insert, delete, update? Если только это, то сетапить хибер дольще по ощущениям, чем запилить на JDBC.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819359
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

автор Хотя где шансы что запросы с jdbc будут оптимальными?

Я думал хибер внутри юзает jdbc. Но могу ошибаться.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819362
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

автору Вас 20 сущностей в системе и вам для каждой сущности придется писать CRUD операции на jdbc. Это же жестяк. А потом еще предусмотреть расширение другими кверями. От этого код раздувается и все больше вырисовывается велосипед который придумали

Дело вкуса. Если crud самые базовые, то не вижу сложностей их написать. Зато в хибер с его состояниями разбираться - transient/managed/detached...для самого элементарного.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819363
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusЗа что можно любить хибер?а как ты получишь классы без ОРМ?
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819367
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

через ResultSet. Как собственно и делает это хибер, насколько мне известно :)
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819377
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusPetro123,

через ResultSet. Как собственно и делает это хибер, насколько мне известно :)смешно.
А маппинг аннотациями как?
А сохранение один ко многим?
Смешно.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819383
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

авторсмешно.
А маппинг аннотациями как?
А сохранение один ко многим?
Смешно.

На самом деле не смешно. А так да, это прийдется пописать ручками.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819398
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusтак да, это прийдется пописать ручками.пишите
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819400
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusTsyklop,

автор Хотя где шансы что запросы с jdbc будут оптимальными?

Я думал хибер внутри юзает jdbc. Но могу ошибаться.
Да. Хибер работает "via JDBC". Это написано на титульной страничке hibernate.org/orm/
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819408
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

авторДа. Хибер работает "via JDBC". Это написано на титульной страничке hibernate.org/orm/

Не только там, открой для себя гугл. Что сказать-то хотел?
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819409
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtusmayton,

авторДа. Хибер работает "via JDBC". Это написано на титульной страничке hibernate.org/orm/

Не только там, открой для себя гугл. Что сказать-то хотел?
(пожимая плечами)

Какая странная реакция. Ну как будет угодно.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819410
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Нормальная реакция на твой сарказм в предыдущем ответе. Если его там не было, то ок - был неправ.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819498
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarПод типовые запросы на запись - хранимые процедуры.ну хранимки могут и не только типрвые запросы, они много больше могут
и
Petro123Быстрее будет.
Molasar+ Hibernate.
вот только от хибера избавиться надо
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819525
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
тебе повезло. В биллинге хибер не нужен.
А ты разве не знал, что хибер для CRUD.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819618
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
тебе повезло. В биллинге хибер не нужен.
А ты разве не знал, что хибер для CRUD.
Я планирую делать 2 реализации на Хибере и JDBC. Потом буду тестить под нагрузкой оба варианта. О результатах сообщу.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819629
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar, я бы начал тестировать ваше железо+базу на момент выдержки нагрузки и нужной вам производительности. Может так случится, что после тестирования хибер сам собой отпадет...
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819634
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,
Да. Присоединяюсь ко всем - тестируйте. А оба варианта это скилы.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819662
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarВсем привет!

Есть класс Event:
Код: java
1.
2.
3.
4.
5.
6.
7.
public class Event implements Serializable {
   
    private Long id;
    private Properties properties;
    ...

}


Необходимо сохранять объекты класса Event в БД через Spring + Hibernate.

В каком виде лучше хранить данную сущность:?
1. Одна таблица Event, но тогда поле properties будет как BLOB.
2. Сделать две таблицы, отношение один ко многим. В 1-ой таблице id, во 2-ой id, key, value. Соответственно сначала добавляем запись в 1-ю, получаем id и записываем соответствующую запись в 2-ю таблицу.
Способ хранения может быть любым. В данном случае (1) и (2) правильные.

Но можно выбирать оптимальные стратегии хранения исходя из того как часто эти записи будут модифицироваться.
Например.

Вариант 1: Вся сущность event сериализируется в JSON и так и хранится в одной табличке. Как varchar.
Этот вариант хорош когда модификаций не будет. Место экономится. Или BLOB если varchar уже закончился
по размеру.

Вариант 2: Сущности properties (key,value) хранятся в отдельной табличке оптимизированной под частые изменения.
При этом получаем скорость обновления пропертей. Если конечно это необходимо. Расход места будет чуть больше.

И прочие варианты. Смешанные. Например если properties содержит в себе такие-же объекты properties (дерево) то
можно просто делать 1 табличку дерево где есть родительские и дочерние записи. Вобщем вариантов на самом деле еще
больше.

И поле id, я-бы сделал не враппером а примитивом. Всё таки id предполагает что это всегда NOT NULL.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819674
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ поле id, я-бы сделал не враппером а примитивом. Всё таки id предполагает что это всегда NOT NULLэто оно в бд not null, а до базы это вообще-то признак нового объекта
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819675
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonMolasarВсем привет!

Есть класс Event:
Код: java
1.
2.
3.
4.
5.
6.
7.
public class Event implements Serializable {
   
    private Long id;
    private Properties properties;
    ...

}


Необходимо сохранять объекты класса Event в БД через Spring + Hibernate.

В каком виде лучше хранить данную сущность:?
1. Одна таблица Event, но тогда поле properties будет как BLOB.
2. Сделать две таблицы, отношение один ко многим. В 1-ой таблице id, во 2-ой id, key, value. Соответственно сначала добавляем запись в 1-ю, получаем id и записываем соответствующую запись в 2-ю таблицу.
Способ хранения может быть любым. В данном случае (1) и (2) правильные.

Но можно выбирать оптимальные стратегии хранения исходя из того как часто эти записи будут модифицироваться.
Например.

Вариант 1: Вся сущность event сериализируется в JSON и так и хранится в одной табличке. Как varchar.
Этот вариант хорош когда модификаций не будет. Место экономится. Или BLOB если varchar уже закончился
по размеру.

Вариант 2: Сущности properties (key,value) хранятся в отдельной табличке оптимизированной под частые изменения.
При этом получаем скорость обновления пропертей. Если конечно это необходимо. Расход места будет чуть больше.

И прочие варианты. Смешанные. Например если properties содержит в себе такие-же объекты properties (дерево) то
можно просто делать 1 табличку дерево где есть родительские и дочерние записи. Вобщем вариантов на самом деле еще
больше.

И поле id, я-бы сделал не враппером а примитивом. Всё таки id предполагает что это всегда NOT NULL.
В данном случае данные будут только добавляться в таблицу. Это что-то типа лога, журнала событий. В дальнейшем необходимо будет читать таблицу, делать выборку, поэтому вариант с одной таблицей и BLOB не подходит, т.к. для того чтобы что-то выбрать необходимо будет выкачивать всю базу, превращать BLOB в HashMap. JSON как varchar по этой причине тоже отпадает.
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819695
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Какая предполагается нагрузка? Количество сообщений в день, количество запросов на выборку?
2) Если нагрузка небольшая то в принципе пофиг на чем писать, что на хибере что ждбс что бд что nosql, если же нагрузка большая, то имеет смысл подумать о чем-то нереляционном, в том числе elasticsearch.

Но что-то мне подсказывает что там нагрузка небольшая, так что..
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819742
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,
Ты запиши логи. А потом отдельный процесс их разгребет.
Биллинг это вроде отдельный подход и технологии. И даже область знаний)
Как в OLAP/OLTP
...
Рейтинг: 0 / 0
Запись Properties в БД
    #39819822
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasarmaytonпропущено...

Способ хранения может быть любым. В данном случае (1) и (2) правильные.

Но можно выбирать оптимальные стратегии хранения исходя из того как часто эти записи будут модифицироваться.
Например.

Вариант 1: Вся сущность event сериализируется в JSON и так и хранится в одной табличке. Как varchar.
Этот вариант хорош когда модификаций не будет. Место экономится. Или BLOB если varchar уже закончился
по размеру.

Вариант 2: Сущности properties (key,value) хранятся в отдельной табличке оптимизированной под частые изменения.
При этом получаем скорость обновления пропертей. Если конечно это необходимо. Расход места будет чуть больше.

И прочие варианты. Смешанные. Например если properties содержит в себе такие-же объекты properties (дерево) то
можно просто делать 1 табличку дерево где есть родительские и дочерние записи. Вобщем вариантов на самом деле еще
больше.

И поле id, я-бы сделал не враппером а примитивом. Всё таки id предполагает что это всегда NOT NULL.
В данном случае данные будут только добавляться в таблицу. Это что-то типа лога, журнала событий. В дальнейшем необходимо будет читать таблицу, делать выборку, поэтому вариант с одной таблицей и BLOB не подходит, т.к. для того чтобы что-то выбрать необходимо будет выкачивать всю базу, превращать BLOB в HashMap. JSON как varchar по этой причине тоже отпадает.
Так ты сам спросил - сам и ответил?
...
Рейтинг: 0 / 0
42 сообщений из 42, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Запись Properties в БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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