JDOとバリュー・オブジェクトの違い
JDOとバリューオブジェクト
を必要とせずにデータベースへのPOJO(Plain Old Java Objects)JDOはPOJOを保存するために使用できるJava永続化テクノロジですPlain Old Java Objects)を、さまざまなデータストアの基本的な実装を理解する必要なくデータベースに追加することができます。バリューオブジェクト(データ転送オブジェクトとも呼ばれます)は、複数のレイヤーとティア間でデータを転送するための単純なデータホルダーの概念を導入する抽象的な設計パターンです。
JDOとは何ですか?
JDO(Java Data Objects)は、Javaオブジェクトおよびデータベースアクセスに永続性を提供するメカニズムを提供します。 JDOは、Javaアプリケーション開発者がデータベース固有のコードを記述することなく、基礎となるデータにアクセスできるため、非常に透過的です。 JDOは、Java Standard Edition、Web層およびアプリケーション・サーバーを含むいくつかの層にわたって使用できます。 JDO APIは、シリアル化、JDBC(Java DataBase Connectivity)、EJB CMP(Enterprise JavaBeans architecture Container Managed Persistence)などのJavaオブジェクトの他の永続性(プログラムの中止後にオブジェクトを保持する)の代替手段です。 JDOは、XMLとバイトコードの拡張を使用します。 JDO APIを使用する主な利点は、SQLなどの新しいクエリ言語を学習する必要なくデータを格納できることです(データストレージの種類によって異なります)。 JDOは、開発者がドメインオブジェクトモデルにのみ集中できるため、使いやすいです。これだけでなく、JDOはデータアクセスに応じてコードを最適化します。 JDO APIはデータストアのタイプに厳密ではないため、javaアプリケーション開発者は、リレーショナルデータベース、オブジェクトデータベース、またはXMLを含む任意のデータストアにJavaオブジェクトを格納するために、同じインタフェースを使用できます。 JDOは、さまざまなベンダーの実装で実行するための変更や再コンパイルが不要なため、移植性に優れています。
バリューオブジェクトとは?
データオブジェクト(DTO)とも呼ばれる値オブジェクトは、レイヤーとティア間でデータを転送する目的でデータを保持するデータコンテナを処理する単純な抽象的なデザインパターンです。このパターンの最も正確な用語はデータ転送オブジェクトですが、Core J2EEの最初のバージョンでは間違いのため、値オブジェクトとして導入されました。このミスは第2版で修正されましたが、この名前は普及し、データ転送オブジェクトの代わりに依然として頻繁に使用されています(ただし、正しい用語はデータ転送オブジェクトです)。 DTO設計パターンはエンティティBean、JDBCおよびJDOとともに使用され、エンタープライズアプリケーションの分離およびトランザクションに関して発生する問題を修正します。これらは、クライアントとデータベース間でデータを転送するために使用されるシンプルなデータ保持者であり、どのような種類の永続性も提供しないことに注意することが重要です。DTOは、伝統的なEJB(3.0より前のエンティティBeanはシリアライズ可能ではない)としてシリアライズ可能なオブジェクトとして動作する目的を果たします。 DTOによって定義された別のアセンブリフェーズでは、ビューによって使用されるすべてのデータが取得され、プレゼンテーションレイヤーへのコントロールのリリース前にマーシャリングされます。
JDOとバリューオブジェクトの違いは何ですか?
JDOは、Javaオブジェクトをデータベースに格納するために使用される永続性テクノロジであり、すべての実装レベルの詳細を処理し、開発者が非データベース固有のコーディングに集中できるようにすることで、開発者にとって便利です。しかし、Value Objectは、クライアントとデータベースの間で転送するためのデータを保持できるデータ転送オブジェクトと呼ばれる汎用データホルダを提供する抽象的な設計パターン(技術ではない)を表します。 JDOは永続的なデータアイテムの機能を提供し、バリューオブジェクトはデータ転送の期間中に一時的にデータを保持する機能しか提供しません。つまり、値オブジェクトは永続性を提供しません。