powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate, Postgresql & int[][]
44 сообщений из 44, показаны все 2 страниц
Hibernate, Postgresql & int[][]
    #39773560
brigad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.

У меня есть вот такой класс:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@Table(name="matrix")
class Matrix {

@Id
@GeneratedValue
private Long id;

private int[][] data;

// getters, setters etc...
}



Каждый экземпляр этого класса может содержать матрицу различных размеров, число строк и столбцов варьируются.
Нужно просто сохранить каждый экземпляр в БД. Индексировать, смотреть содержимое средствами БД не нужно.

Подскажите, как правильно сохранить в postgresql матрицу целых чисел? Какие типы данных и аннотации использовать?
Как бинарный блоб можно хранить? Буду рад любым примерам.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773567
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigad,
ОРМ занимается сущностями а не матрицами.
Оверхед. Убери хибер.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773569
brigad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
Класс Matrix чем не сущность?
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773572
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigadКаждый экземпляр этого класса может содержать матрицу различных размеров, число строк и столбцов варьируются.
Нужно просто сохранить каждый экземпляр в БД. Индексировать, смотреть содержимое средствами БД не нужно.

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

А дело в том что реляционный СУБД не подходят для такого рода использований.
Они хранят в табличке атомы. Маленькие элементы. Текст. Дата. Число.

BLOB конечно поддерживается и работает. И даже если-б его не было мы бы придумали
как завернуть блоб в строку и тоже положить туда. Но накладные расходы на хранение
таких вот странных данных как матрицы очень плохо ложаться на реляционку. Уместнее
их положить в файловую систему рядом и вычитывать отдельно. Это и быстрее и дешевле.

Поэтому к хору ругателей и ненавистиков я тоже присоединяюсь но задаю вопрос. Ты точно
решил что так надо? Были-ли другие варианты?
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773573
brigad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

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

Если покажешь как сохранить эту матрицу как блоб, меня это более чем устроит.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773574
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigadPetro123,
Класс Matrix чем не сущность?ключевое слово Бизнес сущность.
ОНО формируется до понятия класс вообще.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773576
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigadmayton,

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

Если покажешь как сохранить эту матрицу как блоб, меня это более чем устроит.jdbc разве не слышал?
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773577
brigad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Как сохранить бизнес сущность, одно из полей которой имеет тип int[][] ?
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773579
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigadPetro123,

Как сохранить бизнес сущность, одно из полей которой имеет тип int[][] ?пример приведи.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773581
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigad,
У тебя не возникает желание сохранить ноты в сущности? Или запахи?
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773583
brigad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Это я про пример спрашиваю.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773584
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigadPetro123,

Это я про пример спрашиваю.я в jdbc сохранял.
Выражайся яснее.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773586
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДалее по топику каждый входящий будет тебя ругать и кусать и всячески обижать.)) в пионерлагере тоже дедовщина есть. Социум)
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773587
brigad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Я и выражаюсь яснее не куда. Есть бизнес сущность. У неё есть поле int[][].

Кто может показать пример, как сохранить это поле как бинарный блоб в postgresql ?
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773588
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigadЕсть бизнес сущность. У неё есть поле int[][].дело твое)))).
Сущности выделяет бизнес аналитик. Он слово int не знает.
Ты сказал глупость.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773591
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigad,
Если очен надо, то есть лом:
hibernate usertype
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773593
brigad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

А код можешь показать?
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773622
cossack5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigad,

пример . Такая штука есть и в jdbc - пример
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773669
13-й Пилигрим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigad,

PostgreSQL вполне себе поддерживает массивы . В чем конкретно у вас проблема? Что не работает?
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773706
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА дело в том что реляционный СУБД не подходят для такого рода использований.
Они хранят в табличке атомы. Маленькие элементы. Текст. Дата. Число.


СУБД подходят. Конкретно, PostgreSQL может хранить массивы (в том числе многомерные), делать индексацию полей с массивами и выполнять разные операции, например, поиск значения в массиве.

Как представить массив в Hybernate - не знаю. Я пользуюсь простым JDBC и проблем с массивами нет. Кому интересно, пусть ищет в документации по Hibernate, раз тут не отвечают.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773738
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MСУБД подходят. Конкретно, PostgreSQL может хранить массивы (в том числе многомерные), делать индексацию полей с массивами и выполнять разные операции, например, поиск значения в массиве.однако java программирование и хибер тут ни при чем.
Еще могут json хранить.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773751
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а никого не смущает что с примитивами хибер не работает?
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773752
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MmaytonА дело в том что реляционный СУБД не подходят для такого рода использований.
Они хранят в табличке атомы. Маленькие элементы. Текст. Дата. Число.


СУБД подходят. Конкретно, PostgreSQL может хранить массивы (в том числе многомерные), делать индексацию полей с массивами и выполнять разные операции, например, поиск значения в массиве.

Как представить массив в Hybernate - не знаю. Я пользуюсь простым JDBC и проблем с массивами нет. Кому интересно, пусть ищет в документации по Hibernate, раз тут не отвечают.
В хибернейте есть поддержка native query.

Только большинство почему-то упорно этот факт игнорируют и ломятся писать зубодробительные HQL или
пытаются шаманить с маппингами.

Мельчает кодер... Не знает SQL. Мдя. Скоро sql.ru можно переименовать в NoSQL. Хотя... такой уже существует.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773754
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigad,

по твоей задаче если прям так ОЧЕНЬ хочется иметь то что ты хочешь, а именно постгрес и хибер самый простой имхо способ - хранить в формате джейсонби свой объект матрицы и наслаждайся. можешь например, хранить в более православном виде: List<List<Integer>>
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773761
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonPartisan Mпропущено...


СУБД подходят. Конкретно, PostgreSQL может хранить массивы (в том числе многомерные), делать индексацию полей с массивами и выполнять разные операции, например, поиск значения в массиве.

Как представить массив в Hybernate - не знаю. Я пользуюсь простым JDBC и проблем с массивами нет. Кому интересно, пусть ищет в документации по Hibernate, раз тут не отвечают.
В хибернейте есть поддержка native query.

Только большинство почему-то упорно этот факт игнорируют и ломятся писать зубодробительные HQL или
пытаются шаманить с маппингами.

Мельчает кодер... Не знает SQL. Мдя. Скоро sql.ru можно переименовать в NoSQL. Хотя... такой уже существует.
у меня например был проект там овнер прям был вообще против любых скл запросов к базе.
что его этот скл знать то? причем мы даже репортинги делали вполне себе успешно на жпкл. канеш без бутылки водки не разобраться. но нет ничего невозможного да и имхо генерировал он вполне себе норм запросы. многие лучше бы и не написали.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773763
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTmaytonпропущено...

В хибернейте есть поддержка native query.

Только большинство почему-то упорно этот факт игнорируют и ломятся писать зубодробительные HQL или
пытаются шаманить с маппингами.

Мельчает кодер... Не знает SQL. Мдя. Скоро sql.ru можно переименовать в NoSQL. Хотя... такой уже существует.
у меня например был проект там овнер прям был вообще против любых скл запросов к базе.
что его этот скл знать то? причем мы даже репортинги делали вполне себе успешно на жпкл. канеш без бутылки водки не разобраться. но нет ничего невозможного да и имхо генерировал он вполне себе норм запросы. многие лучше бы и не написали.
Если хинтовать Оракловые запросы - то надо свой SQL билдер писать. Стопудняк.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773765
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTbrigad,

по твоей задаче если прям так ОЧЕНЬ хочется иметь то что ты хочешь, а именно постгрес и хибер самый простой имхо способ - хранить в формате джейсонби свой объект матрицы и наслаждайся. можешь например, хранить в более православном виде: List<List<Integer>>
Если там не "зубчатый" массив - то он прекрасно разворачивается в одномерный.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773775
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лол ну флатмап да.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773776
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonandreykaTпропущено...

у меня например был проект там овнер прям был вообще против любых скл запросов к базе.
что его этот скл знать то? причем мы даже репортинги делали вполне себе успешно на жпкл. канеш без бутылки водки не разобраться. но нет ничего невозможного да и имхо генерировал он вполне себе норм запросы. многие лучше бы и не написали.
Если хинтовать Оракловые запросы - то надо свой SQL билдер писать. Стопудняк.
ну зачем в крайности впадать? для 95% приложений где работа заключается в очень сложном алгоритме "взял-положил" хибера выше головы.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773777
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да и вообще хибер прекрасен. особенно глядя на гвоно типа слика.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773778
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTбыл проект там овнер прям был вообще против любых скл запросов к базе)))
Мне как то оба направления интересны. Мое имхо что они по сложности равнозначны.
ОРМ и jdbc.
Главное не мешать.... Пиво с водкой))
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773779
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonУместнее
их положить в файловую систему рядом и вычитывать отдельно. Это и быстрее и дешевле.

это спорно, потом ни масштабироваться ни забэкапиться без лишних извращений.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773786
cossack5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTну зачем в крайности впадать? для 95% приложений где работа заключается в очень сложном алгоритме "взял-положил" хибера выше головы.
Вот-вот. А то мне почему-то попадаются люди, которые не осилили хибер и жалуются, что он делает N+1 или апдейтит все поля. Или мол, сложно читать jpql или criteria api, хотя в тоже время городят такой же нечитаемый sql. Хотя отчеты я бы наверное все же на sql делал.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773800
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
brigadВсем привет.

У меня есть вот такой класс:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@Table(name="matrix")
class Matrix {

@Id
@GeneratedValue
private Long id;

private int[][] data;

// getters, setters etc...
}



Храним инты в отдельном поле в отдельной таблице с идентификатором матрицы и номером столбца. После чтения - дополнительная операция сворачивания в массив. Но многие операции можно уже с полученными данными (без сворачивания) выполнять.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773878
Фотография Пылинка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555,
Если идти прямо напролом через hiber, то просто смотрим раздел документации 2.8. Collections создаем объекты

1) строка таблицы
@OneToMany
@OrderBy(row_num)
List<Matrixrow>


2) в ней (Matrixrow) назначаем коллекцию
@ElementCollection
@OrderColumn(name = "col_num")
private List<Integer> matrixelems = new ArrayList<>();
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773889
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пылинка,
Да как угодно можно)
Можно считать матрицу фотографией и назначить поле Фото 4 на 12)) Блоб.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773891
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTmaytonпропущено...

Если хинтовать Оракловые запросы - то надо свой SQL билдер писать. Стопудняк.
ну зачем в крайности впадать? для 95% приложений где работа заключается в очень сложном алгоритме "взял-положил" хибера выше головы.
У меня мало приложений "взял-положил".

У меня очень много других... Тяжелых.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773893
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
советы могут быть от .... и до....

1. Можно делать "3-я нормальная форма" (я в них путаюсь, может с номером НФ ошибся)
2. Можно пользоваться типы СУБД
Например: https://www.postgresql.org/docs/9.1/arrays.html
3. Можно пользоваться принципом "все в BLOB и не еб...."
4. Можно "все в JSON и не еб...."
и так далее и так далее

В зависимости от вкусов и полученного удовольствия/не удовольствия от предыдущего использования данных сексуальных практик. По нормальному, в зависимости от задачи, но "кто же нам такие подробности раскажет"

IMHO & AFAIK

p.s. хотя все это уже перечислено у разных авторов
p.p.s. смысл плодить отдельную таблицу, при 100% уверенности, что "индексировать, смотреть содержимое средствами БД не нужно." - не вижу
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773895
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettmaytonУместнее
их положить в файловую систему рядом и вычитывать отдельно. Это и быстрее и дешевле.

это спорно, потом ни масштабироваться ни забэкапиться без лишних извращений.
Какую DBMS мы рассматриваем?
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773907
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaTбыл проект там овнер прям был вообще против любых скл запросов к базе)))
Мне как то оба направления интересны. Мое имхо что они по сложности равнозначны.
ОРМ и jdbc.
Главное не мешать.... Пиво с водкой))
да но объективно в хибере бойлерплейта будет меньше в сравнении с гдбц.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773916
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevp.p.s. смысл плодить отдельную таблицу, при 100% уверенности, что "индексировать, смотреть содержимое средствами БД не нужно." - не вижуда. Это основной критерий разбивки инфы на поля в таблице.
Правда есть еще модель хибера (сущность на таблицу).
andreykaTда но объективно в хибере бойлерплейта будет меньше в сравнении с гдбц.
Т.е.
Код: java
1.
2.
3.
Command.... 
var b = Reader.read(байтовый поток)
var матрица = ClassМатрица.read(b)



Для вас много кода?
Тогда это спринг головного мозга. Ничего личного.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773938
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читайте уж хотяб то что сами же квотируете ) я сказал "в сравнении ждбц". окей дополню. в сравнении с ждбс на каком-нибудь типовом приложении. где есть чуть больше задач чем прочитать матрицу из одного поля.
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773967
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,
Если добавить отчеты то будет наоборот.
Мы вроде про матрицу?
Конечно, если 500 сущностей, то ты прав и тут уже не до матрицы)
...
Рейтинг: 0 / 0
Hibernate, Postgresql & int[][]
    #39773976
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему никто не спрашивает про типовой use-case?

Какой будет доступ к private int[][] data ? Будет ли часто обновлятся какой-то элемент матрицы?
Это один кейс. Будет целиком загружатся вся? Это другой. Насколько матрица велика? Она разрежённая?
Есть много нулей?

Почему никому эти вопросы не интересны?
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate, Postgresql & int[][]
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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