Создать объекты JPA 2 из существующей базы данных - PullRequest
33 голосов
/ 29 апреля 2011

Как я могу генерировать JPE2-совместимый @Entity из существующих баз данных?.

Я нашел это: Вопрос

До сих пор неясно, будет ли JBoss генерировать совместимый JPA2 итакже я хотел бы знать, есть ли независимый от поставщика способ сделать это.

Ответы [ 10 ]

19 голосов
/ 29 апреля 2011

Вы можете использовать плагин, такой как Eclipse Dali , чтобы сделать трюк за вас.Вы можете обратиться к документации, раздел 3.11 Генерация сущностей из таблиц .

Однако я не знаю какого-либо конкретного независимого от поставщика инструмента для этого.

17 голосов
/ 13 мая 2011

Попробуйте использовать инструменты обратного отображения OPENJPA. Они предлагают гораздо больше возможностей и просты в настройке. Этот пример пояснит.

Если вы используете maven в качестве инструмента для сборки, добавьте эту запись в ваш pom.xml

    <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2</version>
<configuration>
<mainClass>org.apache.openjpa.jdbc.meta.ReverseMappingTool</mainClass>
<commandlineArgs>
    -directory src/main/java -accessType fields
    -useGenericCollections true -package org.yourproject.model
    -metadata none -annotations true
    -innerIdentityClasses false -useBuiltinIdentityClass false
    -primaryKeyOnJoin false
    </commandlineArgs>
<includePluginDependencies>true</includePluginDependencies>
</configuration>
<dependencies>
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.0.CR3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.openjpa</groupId>
        <artifactId>openjpa-all</artifactId>
        <version>2.0.1</version>
    </dependency>
</dependencies>
    </plugin>

Также добавьте следующие свойства в файл persistence.xml, который находится в папке META-INF ваших ресурсов. Они будут использованы инструментом openjpa для установления соединения с базой данных.

    <properties>
<property name="openjpa.ConnectionUserName" value="${db.username}"/>
<property name="openjpa.ConnectionPassword" value="${db.password}"/>
<property name="openjpa.ConnectionURL" value="${db.url}"/>  
<property name="openjpa.ConnectionDriverName"  value="${db.driver.class}"/>     
   </properties>

Чтобы сгенерировать файлы Entity, просто запустите цель maven в каталоге проекта, используя mvn org.codehaus.mojo: exec-maven-plugin: java , и он сгенерирует файлы в нужном месте.

6 голосов
/ 14 июня 2013
5 голосов
/ 29 июня 2011

Вы должны взглянуть на минутный проект на этом треке, обратный инжиниринг для JPA2 .Это независимый от производителя инструмент.В выпуске 0.5.5 он генерирует:

  • сущности JPA2 (для таблицы и представлений) и связанную метамодель
  • persistence.xml (в 0.5.5 доступна только конфигурация гибернации), но выможет перезаписать его.
  • maven pom с интеграцией querydsl
  • Перечисление классов (если указано при обогащении, например, в файле конфигурации).

Я не пробовал с H2но для этого вам нужно

  • добавить драйвер jdbc H2 в $ MP_HOME / application / lib / extra
  • добавить класс драйвера и параметры вашего соединения в конфигурации MinuteProject.
4 голосов
/ 14 апреля 2014

Telosys , вероятно, самый простой способ для генерации кода такого типа.

Он генерирует сущности JPA (конечно) и, если вам нужно полностью работающее веб-приложение

См. Веб-сайт: http://www.telosys.org

4 голосов
/ 18 декабря 2012

В среде IDE Netbeans существует возможность создания объектов из базы данных.

3 голосов
/ 11 февраля 2016

Eclipse предоставляет эту функцию в течение некоторого времени (происхождение от Дали, включено с версии Kepler).Просто щелкните правой кнопкой мыши по вашему проекту JPA -> Инструменты JPA -> Создать объекты из таблиц:

Screenshot of the menu entry

2 голосов
/ 23 июня 2013

MinuteProject - это круто. Я сгенерировал классы Java из схемы Oracle для JPA2. И все это с большой легкостью. Следуйте шагам, указанным на сайте минутного проекта. Вот URL: иди сюда

0 голосов
/ 11 июня 2015

Если вы являетесь пользователем NetBeans, я получаю отличный плагин в NeatBeans, http://plugins.netbeans.org/plugin/53057/jpa-modeler

Это видео демонстрирует, как его использовать https://www.youtube.com/watch?v=TDbZ5EGpvoY

Может быть установленоиз меню NetBeans Инструменты-> Плагины

У меня работает нормально.

0 голосов
/ 18 мая 2011

Работает ли "создание сущностей из таблицы" опция для базы данных H2? Я всегда нахожу список схем равным пусто на шаге Выбор таблиц, даже если у меня есть допустимое соединениенастройка с базой данных H2 с использованием универсального драйвера JDBC.

То же соединение показывает таблицы в hibernate-tools.Например, когда я создаю реверс-инжиниринг XML в его редакторе, я могу обновить вкладку таблиц и увидеть полный список.Я не знаю, насколько уместны инструменты гибернации, поскольку вместо них может использоваться конфигурация консоли.

...