3

CoreData 在 iOS 中被解释为“模式驱动的对象图管理和持久性框架”,主要与 SQLite 一起用作持久性存储。不一定,您可以仅在内存中使用它,而无需将任何托管对象保存到 SQLite 之类的持久性存储中。

看看 Hibernate,它似乎有很多相似之处,而我质疑它们之间的主要区别。

模式驱动

CoreData 使用一个模式,主要是(在 iOS 中),一个包含实体的 xcdatamodel 文件等等。

据我所知,Hibernate 没有用于 xcdatamodels 的 xcode 之类的图形编辑器,但是由于 JPA,您可以将它用于 XML 文件或直接注释。两者都是计划,恕我直言。

对象图管理

CoreData 管理我的对象,包括更改跟踪以及检查我在方案中定义的约束。此外,它还支持通过对象故障等减少内存使用的机制。

我认为Hibernate也是如此。它跟踪在 xml 中或通过注释定义的约束,并支持减少内存使用的机制,如 coredata(延迟加载等)

持久性

CoreDate 使用底层数据库 sqlite 作为持久性存储,但也可以在内存中使用。

例如,Hibernate 使用 MySQL 数据库作为持久性存储,但可以使用内存中的存储,如 coredata (hsqldb-mem)

因此,由于我不是 hibernate 的专业人士,所以我很困惑——你能说两者之间的关键概念差异是它们真的很像吗?

4

1 回答 1

1

不确定确切的密钥差异,但我的理解之一是

Core Data 专门用于单个客户端使用,只是自动化模型层,而 Hibernate 用于多个客户端使用(一种企业),并提供比核心数据更多的抽象和功能。

于 2012-11-29T16:57:37.580 回答