LINUX.ORG.RU

Как сохранить матрицу в БД?

 , ,


0

2

Как правильно сохранить в postgresql экземпляр вот такого класса:

@Table(name="matrix")
class Matrix {

@Id
@GeneratedValue
private Long id;

private int[][] data;

// getters, setters etc...
}

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

Для записи поля data, как бинарного блоба, какие аннотации и типы данных в БД использовать? Буду рад любым примерам.


Ответ на: комментарий от anonymous

Это я уже всё прочитал. Вопрос, как в java чтение и запись организовать.

pol01 ()

Нафига тебе [][] вообще? Матрица это простой массив int[] если не используется компрессия колонок/строк/etc

anonymous ()
Ответ на: комментарий от pol01

рядом хранить величину первой размерности, вычислять на лету вторую координату

bvn13 ★★★★★ ()
Ответ на: комментарий от Legioner

Сериализуй в XML

В текст согласен, но зачем такое порно с xml? Верно подсказывают - пусть просто числа в ряд, если матрица квадратная - так и подавно.

anonymous ()

Постгрес поддерживает и одномерные, и двумерные массивы. Если массив двумерный, но элементы разного размера, можно хранить в json(b)

какие аннотации ... использовать?

Выбрось недорм и аннотации, пиши на sql.

nikolnik ★★★ ()
Ответ на: комментарий от Legioner

А почему не сразу в xlsx и не хранить как бинарный блоб?

nikolnik ★★★ ()

Чтобы БД жизнь сахаром не казалась, храни каждый элемент отдельной записью. Если понадобятся разреженные матрицы, это может даже оказаться правильным решением, лол.

Алсо, у иклипслинка есть такая шляпа. Не помню, правда, из стандарта она или кастом.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от nikolnik

Я смотрел в сторону json(b). Как понял, там вся фишка, что можно внутри этого json искать будет. Мне этого не нужно.

pol01 ()
Ответ на: комментарий от pol01

Фишка json(b) в том, что это json, по которому можно искать и строить индексы. Так же жсон позволяет хранить данные в произвольном порядке. Если ты в постгресе попытаешься в [][]ARRAY положить {{1,2,3}, {1,2}, {1,2,3} то оно тебе не разрешит, т.к. все массивы должны быть одинаковой длины, в случае с матрицами - это ок, в других случаях приходиться изощряться через жсон.

nikolnik ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.