web-dev-qa-db-ja.com

既存のデータベースからJPA 2エンティティを生成する

既存のデータベースからJPA2準拠の@Entityを生成するにはどうすればよいですか?.

私はこれを見つけました: 質問

JBossが準拠したJPA2を生成するかどうかはまだ明確ではありません。また、これを行うベンダーに依存しない方法があるかどうかを知りたいです。

33
will824

Eclipse Dali のようなプラグインを使用して、トリックを実行できます。ドキュメントのセクション3.11 テーブルからのエンティティの生成 を参照できます。

ただし、これを行うための特定のベンダーに依存しないツールは知りません。

19
Edwin Dalorzo

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>

また、リソースのMETA-INFフォルダーにあるpersistence.xmlに次のプロパティを追加します。これらは、データベースへの接続を確立するために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ファイルを生成するには、mvn org.codehaus.mojo:exec-maven-plugin:Javaを使用してプロジェクトディレクトリでmavenゴールを起動するだけで、目的の場所にファイルが生成されます。

17
6
Cris

JPA2 のリバースエンジニアリングに関するこのトラックの分プロジェクトをご覧ください。ベンダーに依存しないツールです。リリース0.5.5では、以下を生成します。

  • JPA2エンティティ(テーブルとビュー用)および関連するメタモデル
  • persistence.xml(0.5.5ではhibernate構成のみが使用可能)を上書きできます。
  • querydsl統合によるMaven POM
  • 列挙型クラス(エンリッチメントで指定されている場合、つまり構成ファイルで)。

私はH2でそれを試していませんが、これを行うにはあなたがする必要があります

  • h2 jdbcドライバーを$ MP_HOME/application/lib/extraに追加します
  • minuteProject構成にドライバークラスと接続パラメーターを追加します。
5
xflorian

Telosysは、おそらくこの種のコード生成の最も簡単な方法です。

(もちろん)JPAエンティティを生成し、完全に機能するWebアプリが必要な場合

Webサイトを参照してください: http://www.telosys.org

4
John T

Netbeans IDEには、データベースからエンティティを生成するオプションがあります。

4
Ryan

Eclipseは現在、この機能を提供しています(Keplerバージョン以降に含まれているDaliからの発信)。 JPAプロジェクトを右クリックする-> JPAツール->テーブルからエンティティを生成する:

Screenshot of the menu entry

3
SebastianH

MinuteProjectは素晴らしいです。 JPA2のOracleスキーマからJavaクラスを生成しました。すべてを簡単に実行できます。minuteprojectのWebサイトに記載されている次のステップに従ってください:url: ここに行く

2
Sagar Kulkarni

"テーブルからエンティティを生成する"オプションはH2データベースで機能しますか?スキーマリストは常にempty Generic JDBCドライバーを使用したH2データベースとの有効な接続セットアップがありますが、テーブルの選択ステップ。

同じ接続がhibernate-toolsのテーブルを表示しています。たとえば、エディターでリバースエンジニアリングxmlを作成すると、[テーブル]タブを更新して完全なリストを表示できます。代わりにコンソール構成を使用している可能性があるため、休止状態ツールが関連するかどうかはわかりません。

0

NetBeansユーザーの場合、neatbeansの優れたプラグインを入手できます http://plugins.netbeans.org/plugin/53057/jpa-modeler

このビデオでは、その使用方法を示します https://www.youtube.com/watch?v=TDbZ5EGpvoY

NetBeansのメニューからインストールできますTools-> Plugins

それは私のためにうまく機能します。

0
zahid9i