JPA / Hibernate динамические таблицы - PullRequest
0 голосов
/ 11 мая 2018

В настоящее время я работаю над проектом, в котором мне нужно сохранить загруженные файлы Excel / CSV в таблицу базы данных. Для каждого загруженного файла должна быть создана новая таблица с такой же структурой (+ некоторые технические столбцы). После этого таблица базы данных будет отображаться на веб-странице в виде HTML-таблицы. В этой таблице представлены основные функции CRUD для каждого набора данных.

Теперь я решаю, использовать ли JDBC-функции напрямую или использовать JPA, что, на мой взгляд, было бы намного «чище». На втором этапе я хочу опубликовать эти данные через OData с Olingo Framework.

Но я понятия не имею, как мне построить эту общую структуру таблиц (в каждом Excel может быть свой набор столбцов) с функциями JPA. В моем случае нет статической структуры POJO.

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

Вторая мысль заключалась в создании общего POJO со следующими атрибутами

  • (Строка) имя таблицы
  • (Список) столбцы
  • (Список) наборов данных

Но с этой структурой весь набор данных всегда будет обновляться. Не очень хорошее решение, когда в таблице могут быть сотни записей. Использование базы данных, такой как Mongo, также не является решением, поскольку в этом проекте требуется реляционная база данных (для дальнейшего использования). В противном случае я мог бы сохранить это превосходство через JSON.

Привет!

1 Ответ

0 голосов
/ 11 мая 2018

Этот процесс Bulk предназначен для использования JPA или Hibernate, но работа с общей моделью не будет большой выгодой.

  1. Класс сущности должен быть аннотирован с помощью javax.persistence.Аннотация объекта (или обозначаемая как таковая в отображении XML)
  2. Класс объекта должен иметь открытый или защищенный конструктор без аргументов.Он также может определять дополнительные конструкторы.
  3. Класс сущности должен быть классом верхнего уровня.
  4. Класс сущности не должен быть окончательным.Никакие методы или постоянные переменные экземпляра класса сущностей не могут быть окончательными.

и т. Д. *

Я работаю с общей таблицей сущностей, вот структура:

CREATE TABLE T_SPPI_DETT_ENTITY
(
  ID                NUMBER(12)           NOT NULL,
  ATTR_NAME         VARCHAR2(50 BYTE)    NOT NULL,
  ATTR_VALUE            VARCHAR2(500 BYTE),
  ATTR_DATE              DATE
) 

ALTER TABLE  T_SPPI_DETT_ENTITY ADD (
  CONSTRAINT T_DETT_ENTITY_PK  PRIMARY KEY  (ID, ATTR_NAME)
  USING INDEX T_DETT_ENTITY_PK  ENABLE VALIDATE);

Для запроса по этой таблице JPA / Hibernate не очень хороший подход, я использую: Oracle PIVOT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...