|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
Всем привет. У меня есть вот такой класс: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Каждый экземпляр этого класса может содержать матрицу различных размеров, число строк и столбцов варьируются. Нужно просто сохранить каждый экземпляр в БД. Индексировать, смотреть содержимое средствами БД не нужно. Подскажите, как правильно сохранить в postgresql матрицу целых чисел? Какие типы данных и аннотации использовать? Как бинарный блоб можно хранить? Буду рад любым примерам. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 19:37 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
brigad, ОРМ занимается сущностями а не матрицами. Оверхед. Убери хибер. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:02 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
Petro123, Класс Matrix чем не сущность? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:07 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
brigadКаждый экземпляр этого класса может содержать матрицу различных размеров, число строк и столбцов варьируются. Нужно просто сохранить каждый экземпляр в БД. Индексировать, смотреть содержимое средствами БД не нужно. Подскажите, как правильно сохранить в postgresql матрицу целых чисел? Какие типы данных и аннотации использовать? Как бинарный блоб можно хранить? Буду рад любым примерам. Далее по топику каждый входящий будет тебя ругать и кусать и всячески обижать. А дело в том что реляционный СУБД не подходят для такого рода использований. Они хранят в табличке атомы. Маленькие элементы. Текст. Дата. Число. BLOB конечно поддерживается и работает. И даже если-б его не было мы бы придумали как завернуть блоб в строку и тоже положить туда. Но накладные расходы на хранение таких вот странных данных как матрицы очень плохо ложаться на реляционку. Уместнее их положить в файловую систему рядом и вычитывать отдельно. Это и быстрее и дешевле. Поэтому к хору ругателей и ненавистиков я тоже присоединяюсь но задаю вопрос. Ты точно решил что так надо? Были-ли другие варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:12 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
mayton, Про реляционную модель данных я знаю. Проблема в том, что размеры матрицы варьируются для каждого экземпляра класса. Если покажешь как сохранить эту матрицу как блоб, меня это более чем устроит. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:16 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
brigadPetro123, Класс Matrix чем не сущность?ключевое слово Бизнес сущность. ОНО формируется до понятия класс вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:20 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
brigadmayton, Про реляционную модель данных я знаю. Проблема в том, что размеры матрицы варьируются для каждого экземпляра класса. Если покажешь как сохранить эту матрицу как блоб, меня это более чем устроит.jdbc разве не слышал? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:21 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
Petro123, Как сохранить бизнес сущность, одно из полей которой имеет тип int[][] ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:22 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
brigadPetro123, Как сохранить бизнес сущность, одно из полей которой имеет тип int[][] ?пример приведи. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:23 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
brigad, У тебя не возникает желание сохранить ноты в сущности? Или запахи? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:24 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
Petro123, Это я про пример спрашиваю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:25 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
brigadPetro123, Это я про пример спрашиваю.я в jdbc сохранял. Выражайся яснее. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:26 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
maytonДалее по топику каждый входящий будет тебя ругать и кусать и всячески обижать.)) в пионерлагере тоже дедовщина есть. Социум) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:28 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
Petro123, Я и выражаюсь яснее не куда. Есть бизнес сущность. У неё есть поле int[][]. Кто может показать пример, как сохранить это поле как бинарный блоб в postgresql ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:30 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
brigadЕсть бизнес сущность. У неё есть поле int[][].дело твое)))). Сущности выделяет бизнес аналитик. Он слово int не знает. Ты сказал глупость. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:33 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
brigad, Если очен надо, то есть лом: hibernate usertype ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:38 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
Petro123, А код можешь показать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 20:47 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
brigad, PostgreSQL вполне себе поддерживает массивы . В чем конкретно у вас проблема? Что не работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 08:01 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
maytonА дело в том что реляционный СУБД не подходят для такого рода использований. Они хранят в табличке атомы. Маленькие элементы. Текст. Дата. Число. СУБД подходят. Конкретно, PostgreSQL может хранить массивы (в том числе многомерные), делать индексацию полей с массивами и выполнять разные операции, например, поиск значения в массиве. Как представить массив в Hybernate - не знаю. Я пользуюсь простым JDBC и проблем с массивами нет. Кому интересно, пусть ищет в документации по Hibernate, раз тут не отвечают. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 10:04 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
Partisan MСУБД подходят. Конкретно, PostgreSQL может хранить массивы (в том числе многомерные), делать индексацию полей с массивами и выполнять разные операции, например, поиск значения в массиве.однако java программирование и хибер тут ни при чем. Еще могут json хранить. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 11:07 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
а никого не смущает что с примитивами хибер не работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 11:27 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
Partisan MmaytonА дело в том что реляционный СУБД не подходят для такого рода использований. Они хранят в табличке атомы. Маленькие элементы. Текст. Дата. Число. СУБД подходят. Конкретно, PostgreSQL может хранить массивы (в том числе многомерные), делать индексацию полей с массивами и выполнять разные операции, например, поиск значения в массиве. Как представить массив в Hybernate - не знаю. Я пользуюсь простым JDBC и проблем с массивами нет. Кому интересно, пусть ищет в документации по Hibernate, раз тут не отвечают. В хибернейте есть поддержка native query. Только большинство почему-то упорно этот факт игнорируют и ломятся писать зубодробительные HQL или пытаются шаманить с маппингами. Мельчает кодер... Не знает SQL. Мдя. Скоро sql.ru можно переименовать в NoSQL. Хотя... такой уже существует. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 11:30 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
brigad, по твоей задаче если прям так ОЧЕНЬ хочется иметь то что ты хочешь, а именно постгрес и хибер самый простой имхо способ - хранить в формате джейсонби свой объект матрицы и наслаждайся. можешь например, хранить в более православном виде: List<List<Integer>> ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 11:31 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
maytonPartisan Mпропущено... СУБД подходят. Конкретно, PostgreSQL может хранить массивы (в том числе многомерные), делать индексацию полей с массивами и выполнять разные операции, например, поиск значения в массиве. Как представить массив в Hybernate - не знаю. Я пользуюсь простым JDBC и проблем с массивами нет. Кому интересно, пусть ищет в документации по Hibernate, раз тут не отвечают. В хибернейте есть поддержка native query. Только большинство почему-то упорно этот факт игнорируют и ломятся писать зубодробительные HQL или пытаются шаманить с маппингами. Мельчает кодер... Не знает SQL. Мдя. Скоро sql.ru можно переименовать в NoSQL. Хотя... такой уже существует. у меня например был проект там овнер прям был вообще против любых скл запросов к базе. что его этот скл знать то? причем мы даже репортинги делали вполне себе успешно на жпкл. канеш без бутылки водки не разобраться. но нет ничего невозможного да и имхо генерировал он вполне себе норм запросы. многие лучше бы и не написали. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 11:41 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
andreykaTmaytonпропущено... В хибернейте есть поддержка native query. Только большинство почему-то упорно этот факт игнорируют и ломятся писать зубодробительные HQL или пытаются шаманить с маппингами. Мельчает кодер... Не знает SQL. Мдя. Скоро sql.ru можно переименовать в NoSQL. Хотя... такой уже существует. у меня например был проект там овнер прям был вообще против любых скл запросов к базе. что его этот скл знать то? причем мы даже репортинги делали вполне себе успешно на жпкл. канеш без бутылки водки не разобраться. но нет ничего невозможного да и имхо генерировал он вполне себе норм запросы. многие лучше бы и не написали. Если хинтовать Оракловые запросы - то надо свой SQL билдер писать. Стопудняк. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 11:42 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
andreykaTbrigad, по твоей задаче если прям так ОЧЕНЬ хочется иметь то что ты хочешь, а именно постгрес и хибер самый простой имхо способ - хранить в формате джейсонби свой объект матрицы и наслаждайся. можешь например, хранить в более православном виде: List<List<Integer>> Если там не "зубчатый" массив - то он прекрасно разворачивается в одномерный. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 11:43 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
лол ну флатмап да. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 12:04 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
maytonandreykaTпропущено... у меня например был проект там овнер прям был вообще против любых скл запросов к базе. что его этот скл знать то? причем мы даже репортинги делали вполне себе успешно на жпкл. канеш без бутылки водки не разобраться. но нет ничего невозможного да и имхо генерировал он вполне себе норм запросы. многие лучше бы и не написали. Если хинтовать Оракловые запросы - то надо свой SQL билдер писать. Стопудняк. ну зачем в крайности впадать? для 95% приложений где работа заключается в очень сложном алгоритме "взял-положил" хибера выше головы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 12:05 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
да и вообще хибер прекрасен. особенно глядя на гвоно типа слика. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 12:06 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
andreykaTбыл проект там овнер прям был вообще против любых скл запросов к базе))) Мне как то оба направления интересны. Мое имхо что они по сложности равнозначны. ОРМ и jdbc. Главное не мешать.... Пиво с водкой)) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 12:07 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
maytonУместнее их положить в файловую систему рядом и вычитывать отдельно. Это и быстрее и дешевле. это спорно, потом ни масштабироваться ни забэкапиться без лишних извращений. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 12:10 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
andreykaTну зачем в крайности впадать? для 95% приложений где работа заключается в очень сложном алгоритме "взял-положил" хибера выше головы. Вот-вот. А то мне почему-то попадаются люди, которые не осилили хибер и жалуются, что он делает N+1 или апдейтит все поля. Или мол, сложно читать jpql или criteria api, хотя в тоже время городят такой же нечитаемый sql. Хотя отчеты я бы наверное все же на sql делал. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 12:29 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
brigadВсем привет. У меня есть вот такой класс: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Храним инты в отдельном поле в отдельной таблице с идентификатором матрицы и номером столбца. После чтения - дополнительная операция сворачивания в массив. Но многие операции можно уже с полученными данными (без сворачивания) выполнять. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 12:56 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
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<>(); ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 14:49 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
Пылинка, Да как угодно можно) Можно считать матрицу фотографией и назначить поле Фото 4 на 12)) Блоб. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 14:59 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
andreykaTmaytonпропущено... Если хинтовать Оракловые запросы - то надо свой SQL билдер писать. Стопудняк. ну зачем в крайности впадать? для 95% приложений где работа заключается в очень сложном алгоритме "взял-положил" хибера выше головы. У меня мало приложений "взял-положил". У меня очень много других... Тяжелых. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 15:04 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
советы могут быть от .... и до.... 1. Можно делать "3-я нормальная форма" (я в них путаюсь, может с номером НФ ошибся) 2. Можно пользоваться типы СУБД Например: https://www.postgresql.org/docs/9.1/arrays.html 3. Можно пользоваться принципом "все в BLOB и не еб...." 4. Можно "все в JSON и не еб...." и так далее и так далее В зависимости от вкусов и полученного удовольствия/не удовольствия от предыдущего использования данных сексуальных практик. По нормальному, в зависимости от задачи, но "кто же нам такие подробности раскажет" IMHO & AFAIK p.s. хотя все это уже перечислено у разных авторов p.p.s. смысл плодить отдельную таблицу, при 100% уверенности, что "индексировать, смотреть содержимое средствами БД не нужно." - не вижу ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 15:05 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
HettmaytonУместнее их положить в файловую систему рядом и вычитывать отдельно. Это и быстрее и дешевле. это спорно, потом ни масштабироваться ни забэкапиться без лишних извращений. Какую DBMS мы рассматриваем? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 15:05 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
Petro123andreykaTбыл проект там овнер прям был вообще против любых скл запросов к базе))) Мне как то оба направления интересны. Мое имхо что они по сложности равнозначны. ОРМ и jdbc. Главное не мешать.... Пиво с водкой)) да но объективно в хибере бойлерплейта будет меньше в сравнении с гдбц. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 15:27 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevp.p.s. смысл плодить отдельную таблицу, при 100% уверенности, что "индексировать, смотреть содержимое средствами БД не нужно." - не вижуда. Это основной критерий разбивки инфы на поля в таблице. Правда есть еще модель хибера (сущность на таблицу). andreykaTда но объективно в хибере бойлерплейта будет меньше в сравнении с гдбц. Т.е. Код: java 1. 2. 3.
Для вас много кода? Тогда это спринг головного мозга. Ничего личного. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 15:38 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
читайте уж хотяб то что сами же квотируете ) я сказал "в сравнении ждбц". окей дополню. в сравнении с ждбс на каком-нибудь типовом приложении. где есть чуть больше задач чем прочитать матрицу из одного поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 16:18 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
andreykaT, Если добавить отчеты то будет наоборот. Мы вроде про матрицу? Конечно, если 500 сущностей, то ты прав и тут уже не до матрицы) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 17:04 |
|
Hibernate, Postgresql & int[][]
|
|||
---|---|---|---|
#18+
А почему никто не спрашивает про типовой use-case? Какой будет доступ к private int[][] data ? Будет ли часто обновлятся какой-то элемент матрицы? Это один кейс. Будет целиком загружатся вся? Это другой. Насколько матрица велика? Она разрежённая? Есть много нулей? Почему никому эти вопросы не интересны? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2019, 17:21 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2121481]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
92ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 330ms |
total: | 528ms |
0 / 0 |