17

私は Java 開発者です。私はspring 4.0.1hibernate 4.2.21を使用しています。私は次のようなクラスを持っています:

@Entity
@Inheritance(...)
public abstract class Feature{
   @Id
   @GeneratedValue
   protected Long id;

   ...

}

今、私は次のようにいくつかのクラスを持っています:

Label.java クラス:

@Entity
public class Label extends Feature{
   protected String str;

   ...
}

Point.java クラス:

@Entity
public class Point extends Feature{
   protected Integer intg;

   ...
}

クラスから拡張された 20 を超えるエンティティ クラスがありFeatureます。ハードコードを書かずに、このクラス ( や など) をプロジェクトに Label動的に追加する方法はありますか?Point

更新:

たとえば、Hibernate はデータベースからデータを取得し、このデータに従ってモデルを作成します。

  1. 出来ますか?
  2. 私はどのように行いますか?
4

7 に答える 7

2

Hibernate リバース エンジニアリングを使用して、すべてのデータベース テーブルのエンティティを生成できると思います。このリンクを参照してください。これは、休止状態のリバース エンジニアリングを使用してデータベースからエンティティを生成するプロセスを段階的に説明します。

于 2015-12-01T12:00:34.543 に答える
1

Eclipseでこれを行うことができると思いますが、継承階層を維持するために、クラスを多かれ少なかれ変更する必要がありました。

  • プロジェクト名を右クリックし、[プロパティ] を選択します。
  • プロジェクト ファセットが有効になっていない場合はプロジェクト ファセットを使用する

ここに画像の説明を入力

  • JPAが選択されていない場合はクリックし、[ OK ] をクリックしてプロジェクト プロパティ ウィンドウを閉じます。

  • プロジェクト プロパティで JPA を有効にした後、プロジェクト名をもう一度右クリックすると、新しいコンテキスト メニュー項目JPA ツールが表示されます。テーブルからエンティティを生成するを選択します

ここに画像の説明を入力

データベース接続を選択して、生成されたクラスに使用されるテーブルを Eclipse が取得できるようにします。

Eclipseでdbをセットアップする方法は次のとおりです

  • 上記の方法を使用してダミー プロジェクトにエンティティを作成し、Entity クラスを実際のプロジェクトにコピーすることをお勧めします。

  • Eclipse のクラス リファクタリングを使用して、必要な継承階層を保持できます。

お役に立てれば。

于 2015-11-30T05:07:04.540 に答える