一尘不染

澄清术语:“水化”实体:从数据库中获取属性

hibernate

在实体的ORM /延迟加载的情况下,我对术语“水合”的理解如下:

“水合”描述了填充使用延迟加载获取的实体的某些或全部先前未填充的属性的过程。

例如:Author从数据库中加载类:

@Entity
class Author
{
     @Id
     long id;
     List<Book> books;
}

最初,books不填充集合。

据我了解,books从数据库加载集合的过程称为“水化”集合。

这个定义正确吗?我应该在此过程中使用另一个更通用的术语吗?


阅读 300

收藏
2020-06-20

共1个答案

一尘不染

Hydrate最初是一个术语,用于从db中填充实例化(但为空)的值对象/模型(特别是在Hibernate中)。

其他各种ORM和工具(例如BizTalk)都使用Hydrate和其他相关术语(例如,BizTalk使用术语“脱水”表示实例可用但尚未填充)。

就我个人而言,我不赞成重复使用术语进行大修,在没有重新发明语言的情况下, 填充
意味着同一件事。它什么也没有添加,并导致混乱(遇到重新发明的术语时通常会首先想到: 这在某种程度上是不同的和神奇的吗? )。

这种语言,特别是 脱水 的BizTalk扩展是多余的。我希望人们不会忘记怎么说,是 还是 清晰

Hydrated 及其相关的隐喻本质上是营销工具,其发明旨在将Hibernate与竞争产品区分开。

在这一点上,Hibernate和其他ORM产品已经使用了这些术语很多年了,因此水合物(和脱水)仍然存在。

2020-06-20