3

CoreData は、主に永続ストアとして SQLite で使用される iOSの「スキーマ駆動型オブジェクト グラフ管理および永続フレームワーク」として説明されています。必ずしも必要ではありませんが、管理対象オブジェクトを SQLite などの永続ストアに保存することなく、たとえばメモリ内でのみ使用できます。

Hibernate を見ると、多くの類似点があるように見えますが、それらの主な違いは疑問です。

スキーマ主導

CoreData はスキーマを使用します。これはほとんど (iOS の場合)、エンティティを含む xcdatamodel ファイルなどです。

私が知っているように、Hibernate には xcdatamodels 用の xcode のようなグラフィカル エディターはありませんが、XML ファイルまたは JPA による直接の注釈で使用できます。どちらも私見と同様にスキームです。

オブジェクトグラフ管理

CoreData は、変更の追跡を含むオブジェクトを管理し、スキームで定義された制約をチェックします。さらに、オブジェクトの障害などによってメモリ使用量を削減するメカニズムをサポートしています。

Hibernateもそうだと思います。xml または注釈を介して定義された制約を追跡し、coredata (遅延読み込みなど) のようなメモリ使用量を削減するメカニズムをサポートします。

持続性

CoreDate は、基礎となるデータベース sqlite を永続ストアとして使用しますが、それ以外の方法でメモリ内で使用することもできます。

Hibernate は、たとえば MySQL db を永続ストアとして使用しますが、coredata (hsqldb-mem) のようなメモリ内ストレージを使用する場合があります。

したがって、私は休止状態のプロではないという事実のために、私は傷ついています-両方の重要な概念の違いは、それらが本当にお互いに似ているということですか?

4

1 に答える 1

1

正確なキーの差分についてはわかりませんが、私の理解の1つは

Core Dataは、特に単一クライアントの使用を目的としており、モデルレイヤーを自動化するだけですが、Hibernateは複数のクライアントの使用(一種のエンタープライズ)を対象としており、コアデータよりもはるかに多くの抽象化と機能を提供します。

于 2012-11-29T16:57:37.580 に答える