クラスのインスタンスをエンティティとしてデータベースに保存するのはなぜですか?
-
03-07-2019 - |
質問
Google Datastore APIの行を理解しようとしています言います:
JDOはJavaクラスで注釈を使用します クラスのインスタンスがどのように説明するか としてデータストアに保存されます エンティティ、およびエンティティの方法 取得時にインスタンスとして再作成 データストアから。
これはほとんどの人にとって非常に基本的な質問だと思います。しかし、クラスオブジェクトをデータベースに保存し、後で取得する必要がある理由がわかりません。クラス全体を保存するのではなく、常に同じプロパティを繰り返し保存するのではなく、アプリケーションでデータストアの外観を定義し、必要に応じてクラスプロパティの関連データのみを保存してください。クラスのインスタンスには、データベースに存在する必要のないあらゆる種類の情報(メソッド、クラス変数、インスタンス変数)が含まれています。ソースコードにその内容を記述し、再現する必要はありません。データベース内で-クラスが保存されている特定の関連データのみが必要です。右?引用文が何を意味するのか理解していないのかもしれません。誤解している場合は修正してください。
解決
Google Datastoreは、SQL ServerやOracleのような標準のリレーショナルデータベースではありません。エンティティは、最初にスキーマを作成してからオブジェクトをスキーマにマッピングする従来の方法ではなく、定義に基づいて保存されます。プライベートメンバまたはメソッドがデータと共に保存されるとは思わないので、メソッドを含むオブジェクト全体がデータストアにシリアル化されるわけではありません。
他のヒント
代わりに、クラス全体を保存したり、同じプロパティを繰り返し保存したりするのではなく、必要に応じてアプリケーションのデータストアの外観を定義し、クラスプロパティの関連データのみを保存しますか?
それはまさにあなたが引用したものが実際に意味するものです:
JDOはJavaクラスの注釈を使用して、クラスのインスタンスがエンティティとしてデータストアに格納される方法、およびデータストアから取得されたときにエンティティがインスタンスとして再作成される方法を記述します。
注釈を使用して、「フィールドXを保存」、「フィールドYを無視」などを言います。