2017-02-05 5 views
1

Мне нужна помощь с JPA 2.1 (и спящий режим ORM).JPA persist generic entity

У меня есть какая-то сущность (3-4), отображаемая в таблице базы данных, и я могу видеть их строки в отдельные потоки данных. Я также экспортирую эти данные в файл .xls с помощью apache poi. Все работает отлично.

Теперь мне нужно импортировать и прочитать файл excel (я уже сделал это) и вставить новую информацию в таблицу.

Могу ли я реализовать общий метод JPA для вставки (создания постоянных) серии данных?

Нечто подобное

EntityManager em = getEntityManager; 
em.getTransaction().begin(); 

Employee employee = new Employee(); 
employee.setFirstName("Bob"); 
.... 

em.persist(employee); 
em.getTransaction().commit(); 

Но с «общим», а не конкретным объектом (в данном случае «Сотрудник»), с тем, чтобы создать уникальный постоянный метод для всех объектов, а не несколько специфичного метод для каждого объекта? (Принимая во внимание, что они также имеют разные названия столбцов).

Спасибо всем!

ответ

0

Вам нужен способ, чтобы определить следующее:

  • Какой тип сущности должен строка первенствует подразумеваться, как.
  • Каковы свойства сопоставлений между различными столбцами excel и свойствами сущности.

С помощью этих частей информации вы можете легко использовать конструктор no-arg для каждого из классов сущностей для создания нового экземпляра, использовать библиотеку типа BeanUtils или ее эквивалент для установки значений свойств на основе столбца сопоставление свойств, а затем сохранить его.

С точки зрения сохранения JPA здесь абсолютно ничего нет, что влияет на это.

+0

Благодарим вас за ответ. Для первого момента у меня есть способ идентифицировать сущность, на которой загружаются данные, на основе идентификатора панели, который я импортирую Excel. Для второго пункта я должен думать больше ... Я слышал об этой библиотеке, теперь я буду смотреть больше – Fusa92