Hibernate遵循哪种模式?

Martin Fowler在其着作“企业应用程序架构模式”一书中讨论了在软件开发中常见的持久性模式,特别是与ORM相关的持久性模式。

是否存在Hibernate最紧密遵守的模式?

Hibernate使用了几种模式:

  • 延迟加载 (代理集合)
  • 工作单元 (作为Session对象的一部分)
  • 可能是身份地图或更复杂的东西
  • 映射元数据
  • Criterion API的查询对象
  • 所有对象关系结构模式

Hibernate不遵循ActiveRecord模式。 Hibernate最贴近的模式是Datamapper模式。

如果您正在寻找设计模式明确,那么您可以将Hibernate视为用于实现Active Record Pattern的奇特API:

在软件工程中,活动记录模式是在软件中经常发现的设计模式,其将数据存储在关系数据库中。 它由Martin Fowler在他的“企业应用程序架构模式”一书中命名。 这种对象的接口包括插入,更新和删除等function,以及与底层数据库表中的列或多或少直接对应的属性。

活动记录是一种访问数据库中数据的方法。 数据库表或视图被包装到一个类中; 因此,对象实例绑定到表中的单个行。 创建对象后,在保存时会向表中添加新行。 加载的任何对象都从数据库中获取其信息; 更新对象时,表中的相应行也会更新。 包装类为表或视图中的每个列实现访问器方法或属性。

Hibernate显然是域模型 。 ORM中的对象是域模型,因此如果没有ORM,则无法执行ORM。