powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / guava table в jpa entity
17 сообщений из 17, страница 1 из 1
guava table в jpa entity
    #40121287
If Dzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть табличка com.google.common.collect.Table
Например такая:
Код: java
1.
2.
Table<Integer, String, String> grid = HashBasedTable.create();
grid.put(1, "string1", "string2");



Как ее лучше описать в качестве одного из полей hibernate entity для сохранения в БД (postgres)?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public class EntityClass {
    @Id
    @Column(name = "GRID_NAME", nullable = false)
    private String gridName;

   //?
   private Table<Integer, String, String> grid;
}
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40121292
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разве внутри одной строки таблицы хранят еще одну таблицу? Как-то.. слишком далеко от нормализации.
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40121342
If Dzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Разве внутри одной строки таблицы хранят еще одну таблицу? Как-то.. слишком далеко от нормализации.

Нет необходимости сохранять данные из одного класса в одну таблицу
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40121358
Сначала придумай как ты эту таблицу в БД вообще собираешься записать. А потом уже можно думать как ее мапить на сущности. Если нормализация/запросы по таблице не важны, то всегда есть вариант в JSON/Protobuf/etc сохранить. А если поиск нужен, то это совсем другая реализация будет.
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40121385
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
If Dzen
mayton
Разве внутри одной строки таблицы хранят еще одну таблицу? Как-то.. слишком далеко от нормализации.

Нет необходимости сохранять данные из одного класса в одну таблицу

Ты предлагаешь в коде - денормализацию. Это - прямой отказ от реляционности. Храни тогда в строке, в XML/JSON
вообще в чем угодно в одном строковом атрибуте.

ORM-мапперы обычно не умеют мапить произвольные структуры данных на RDBMS. Им (мапперам) нужно
рассказать как это сделать. И твой вопрос "как лучше описать" - как раз про это. Как ты собираешся видеть
это внутри базы?
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40121435
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
If Dzen
Нет необходимости
у кого конкретно нет необходимости?
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40121442
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как плохо, что преподают основы субд на примитивном уровне..
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40121499
If Dzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
If Dzen
пропущено...

Нет необходимости сохранять данные из одного класса в одну таблицу

Ты предлагаешь в коде - денормализацию. Это - прямой отказ от реляционности. Храни тогда в строке, в XML/JSON
вообще в чем угодно в одном строковом атрибуте.

ORM-мапперы обычно не умеют мапить произвольные структуры данных на RDBMS. Им (мапперам) нужно
рассказать как это сделать. И твой вопрос "как лучше описать" - как раз про это. Как ты собираешся видеть
это внутри базы?


Можно сохранить в строке, можно даже воспользоваться jsonb - и хранить в бинарном виде (при необходимости делая запросы к этому бинарнику). О таком виде отказа от реляционности позаботились разработчики postgres.
Вопрос был не о смысле жизни плюсах нормализации, а о способе ORM маппинга указанной структуры данных с целью ее записи.

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

..
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40121500
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я честно такое никогда не делал. Но по идее как-то так можно
Код: java
1.
2.
3.
4.
5.
6.
7.
import org.hibernate.usertype.*;

public class IfDzenGridType implements CompositeUserType {

  ...

}



Код: java
1.
2.
@Type("....IfDzenGrid")
private IfDzenGrid IfDzenGrid;
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40121501
If Dzen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, спасибо, попробую
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40121537
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
If Dzen
Вопрос был не о смысле жизни
ну, если пахнет Г. кодингом тебя и предупредят.
Ты разве не знал что Г. он тоже технически рабочий и технически позволяет)
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40121813
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
If Dzen
mayton, спасибо, попробую

Посмотри еще вот способ другой.

https://www.baeldung.com/jpa-attribute-converters

тут нужно обеспечить связь 1:1 но может пригодится. Если у тебя данные простые.
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40122028
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Точно сработает. Если это

Код: java
1.
private Table<Integer, String, String> grid;



положить в JSON и сохранить в одно поле типа varchar - то будет нормально и сравнительно быстро.
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40122036
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Можно так еще положить в одно поле. Через разделитель.
223|иванов|Иван
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40122038
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку у него таблица - то лучше наверное какой-то язык разметки. JSON например.
Иначе можно сломать глаза читая переводы строк в ячейке таблицы.
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40122057
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Для глаз json хуже csv. Как пить дать)))
...
Рейтинг: 0 / 0
guava table в jpa entity
    #40122194
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как будет угодно. Делай CVS. Только не забудь корректно эскейпить кавычки и разделители и переводы строк
в ячейке которая лежит внутри ячейки...
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / guava table в jpa entity
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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