デスクトップSWINGアプリケーション上のjpa

ジョージ・キャストレイ:

SWINGを使用して、モノユーザーデスクトップアプリケーションを開発しています。私はjava.sql apiを使用したこの種のアプリケーションについて少し経験があり、それがまったく快適でないことを理解しました...

私が初めてJPAを使用しようとしている新しいアプリケーションで、必要なほとんどすべてを理解させる多くのチュートリアルを読みましたが、実際のJavaデスクトップアプリケーションの良い例が見つかりませんでした。

次のアーキテクチャを使用することを考えていますが、私が正しいかどうかわかりません...

MyPersistenceUnitクラスを作成すると思います:

    public class MyPersistenceUnit {
        private static EntityManagerFactory factory;
        private static EntityManager entityManager;

        public static void initiate(){
            factory=Persistence.createEntityManagerFactory("PU_Name");
            entityManager=factory.createEntityManager();
        }

        public static EntityManager getEntityManager() {
            return entityManager;
        }

        public static void close(){
            entityManager.close();
            factory.close();
        }

    }

initialize()メソッドが最初に呼び出され、close()メソッドはアプリケーションが閉じられたときに呼び出されます。

アプリケーションの実行中、すべてのトランザクションはgetEntityManager()インスタンスを介して実行されます。インスタンスはアプリケーションのどこからでもアクセスできます。JSEアプリケーションについて私の理解が正しければ、取得したエンティティマネージャーは拡張された永続化コンテキストを持ち、エンティティマネージャーが閉じられない間、すべてのエンティティを管理状態に保つことができます。

何か足りないのか分からないので、どんなチップでも大歓迎です

derby組み込みデータベースでeclipselinkプロバイダーを使用していることに注意してください。
ありがとう

ジョージ・キャストレイ:

私のデザインを再考した後、次のように変更することにしました。

  • アプリケーションの起動時に「永続的な」EMを作成し、アプリケーションがシャットダウンするまで開いたままにします。EMは、必要に応じてエンティティを検索/更新するために使用されます(遅延関係などを取得する場合など)。
    WEAK refrence-modeによるメモリの効率的な管理を確保するために、permanentEMの管理対象エンティティを永続的に参照することは避けます。
  • アプリケーションの起動に必要な「永続的な」データをロードする「一時的な」EMを作成します。ロードされたデータがその一時的なEMを閉じる​​と、メモリにロードされたすべてのデータを切り離します。
  • 永続化/マージ/削除トランザクションごとに新しい「一時的な」EMを作成し、トランザクションがコミットしたらそれを閉じます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaデスクトップアプリケーション:SWTとSwingの比較

分類Dev

デスクトップアプリケーションのSwingとJavaFx

分類Dev

Chrome上のデスクトップアプリケーション

分類Dev

Javaのデスクトップアプリケーション

分類Dev

デスクトップアプリケーション用のJava SwingまたはWindowsフォーム?

分類Dev

Javaデスクトップアプリケーション用のJavaFX、Swing、またはFlex

分類Dev

Mac、Windows、Linux上のJavaデスクトップアプリケーションインストーラー

分類Dev

iOSアプリケーションとPythonデスクトップアプリケーション間の通信

分類Dev

ApplicationInsightsデスクトップアプリケーション

分類Dev

Eclipseデスクトップアプリケーション

分類Dev

デスクトップアプリケーションにSwingを使い続ける必要があります

分類Dev

Java Swingデスクトップアプリケーションを国際化するためのベストプラクティスは何ですか?

分類Dev

デスクトップアプリケーション上の共有設定の場所

分類Dev

18.04:デスクトップ上のアプリケーションに描画する方法

分類Dev

優れたJavaデスクトップアプリケーションの例

分類Dev

デスクトップアプリケーション用のApache Felix

分類Dev

Javaデスクトップアプリケーションの制限?

分類Dev

libgdxアプリケーションデスクトップとAndroidの実行

分類Dev

デスクトップ/ iOS / Android用のAngularアプリケーション

分類Dev

リモートデスクトップ上のDevExpressで.NETデスクトップアプリケーションを使用する

分類Dev

Swingアプリケーションのマルチスレッドデザインパターンとベストプラクティス

分類Dev

PHPアプリケーションからデスクトップアプリケーションへ

分類Dev

WindowsデスクトップアプリケーションのレスポンシブUIデザイン

分類Dev

デスクトップアプリとしての.netコアWebアプリケーション

分類Dev

PHP デスクトップ アプリケーションでの PHP プリンター関数の使用

分類Dev

デスクトップのスタンドアロンアプリケーションでのOSGiの使用

分類Dev

コンソールアプリケーションのツールチップ-デスクトップ

分類Dev

マルチプロセスアプリケーションのSQLiteアップデートフック

分類Dev

Javaデスクトップアプリケーションのインストーラーの作成

Related 関連記事

  1. 1

    Javaデスクトップアプリケーション:SWTとSwingの比較

  2. 2

    デスクトップアプリケーションのSwingとJavaFx

  3. 3

    Chrome上のデスクトップアプリケーション

  4. 4

    Javaのデスクトップアプリケーション

  5. 5

    デスクトップアプリケーション用のJava SwingまたはWindowsフォーム?

  6. 6

    Javaデスクトップアプリケーション用のJavaFX、Swing、またはFlex

  7. 7

    Mac、Windows、Linux上のJavaデスクトップアプリケーションインストーラー

  8. 8

    iOSアプリケーションとPythonデスクトップアプリケーション間の通信

  9. 9

    ApplicationInsightsデスクトップアプリケーション

  10. 10

    Eclipseデスクトップアプリケーション

  11. 11

    デスクトップアプリケーションにSwingを使い続ける必要があります

  12. 12

    Java Swingデスクトップアプリケーションを国際化するためのベストプラクティスは何ですか?

  13. 13

    デスクトップアプリケーション上の共有設定の場所

  14. 14

    18.04:デスクトップ上のアプリケーションに描画する方法

  15. 15

    優れたJavaデスクトップアプリケーションの例

  16. 16

    デスクトップアプリケーション用のApache Felix

  17. 17

    Javaデスクトップアプリケーションの制限?

  18. 18

    libgdxアプリケーションデスクトップとAndroidの実行

  19. 19

    デスクトップ/ iOS / Android用のAngularアプリケーション

  20. 20

    リモートデスクトップ上のDevExpressで.NETデスクトップアプリケーションを使用する

  21. 21

    Swingアプリケーションのマルチスレッドデザインパターンとベストプラクティス

  22. 22

    PHPアプリケーションからデスクトップアプリケーションへ

  23. 23

    WindowsデスクトップアプリケーションのレスポンシブUIデザイン

  24. 24

    デスクトップアプリとしての.netコアWebアプリケーション

  25. 25

    PHP デスクトップ アプリケーションでの PHP プリンター関数の使用

  26. 26

    デスクトップのスタンドアロンアプリケーションでのOSGiの使用

  27. 27

    コンソールアプリケーションのツールチップ-デスクトップ

  28. 28

    マルチプロセスアプリケーションのSQLiteアップデートフック

  29. 29

    Javaデスクトップアプリケーションのインストーラーの作成

ホットタグ

アーカイブ