-2

Java で JPA ベースの Web アプリケーションを作成しようとしています。永続的なクラスとデータベース全般を真剣に扱うのは初めてなので、ビルドのような全体的なクラス構造を設計する際に特定の考慮事項を行う必要があるかどうかを学びたいと思います。永続クラスの数を少なくし、データベース構造を単純に保つために、可能な限りフラットにします。長い説明は期待していませんが、データベース アプリケーションに不慣れな人にとってはそれほど明白ではないかもしれない一般的な考慮事項の概要を簡単に説明したいと思います。前もって感謝します。

4

3 に答える 3

1

最初にこれを通過する必要があります

http://www.oracle.com/technetwork/articles/marx-jpa-087268.html

于 2012-12-12T05:46:02.407 に答える
1

データベース アプリケーションに不慣れな人にとっては、それほど明白ではないように思われる一般的な考慮事項

ORM の使用は、表面的には簡単で透過的ですが、考慮すべき小さな問題がたくさんあります。

  • オブジェクト ID。オブジェクトの世界では、各オブジェクトが 1 つの ID を持っているのに対し、リレーショナル データベースは行とキーを処理するというルートの不一致を理解します。ID を正しく、または誤って処理するには、さまざまな方法があります。

  • マッピング データ。まず、単純なデータ型 (文字列、数値、URL など) をどのようにマッピングするかを理解してください。変換の問題 (URL または文字列、バイトまたは BLOB) を処理するための手法を参照して理解します。

  • 関係のマッピング。リレーションをマップする方法 (一方向および双方向)、適切なカプセル化で不変条件を維持する方法、親を失った「孤立した」オブジェクトの問題、複数のリレーションを同じクラスに異なる方法でマップする方法、ロードする方法を理解する熱心にまたは怠惰に、「N + 1」選択問題とのリンク。

  • マッピングの継承。オブジェクト、クラス、およびテーブル間の不一致を理解します。ORM で継承をどこまでサポートできるかを理解します。

  • セッションの操作。セッションの操作を理解する: オブジェクトがアタッチまたはデタッチされるとき、遅延読み込みへの影響、楽観的ロックの処理方法、トランザクションとセッション間のリンク。

一般に、JPA と ORM に関する豊富な文献があります。上記のリストは、私の頭に浮かんだものです。

理想的には、ORM は設計に制約を課すべきではありません。ただし、私のアドバイスは、フラットでシンプルに保つことです。

于 2012-12-12T07:48:00.567 に答える
0

JPA を使用しているため、データベースを単純にする必要はありません。

JPA の主な利点の 1 つは、関係を管理することです。

データベースを使用するためだけにデータベースをダウンさせる必要があるとしたら、それはかなりくだらない API になります。

(特に、通常は JavaEE 環境で使用されるため)

于 2012-12-12T05:55:27.640 に答える