当前位置: 首页 > 面试题库 >

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

曾河
2023-03-14
问题内容

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

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

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

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

最初,books不填充集合。

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

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


问题答案:

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

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

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

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

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

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



 类似资料:
  • 问题内容: 在Spring MVC中使用PropertyEditor时,让它们从数据库中获取实体是否不好?我应该改为创建一个空实体并设置其ID。 例如,实体Employee: 使用以下GenericEntityEditor在下面的PropertyEditor中获取Entity是一个坏主意: 可以绑定在控制器中: 是否更喜欢对EmployeeEditor使用更具体的方法,并使其仅实例化Employe

  • 在Woocommerce中,您可以添加全局产品属性和术语。例如: 这是独立于产品的。然后可以从产品的预定义属性中进行选择。 我需要用php获取属性中的所有术语。因此,选择所需的属性,例如size,然后返回一个数组,其中包括。 看起来很简单,但我找不到任何帮助。

  • 我正在开发一个电子商务Symfony应用程序,但我一直在努力寻找一些关于如何创建实体的信息,这些实体可以从条令中检索一些数据,也可以从外部来源检索一些数据。 这是一个网站,它将销售一家实体店内的相同商品,而实体店已经有了一个预先存在的库存系统。 我目前的情况是,该应用程序需要能够从外部来源(我们的店内库存系统的REST API)检索价格和库存信息,而大部分数据都是由条令处理的。 例如,我有一个如下

  • 用wordpress数据库编写自定义代码创建产品详细页面。 我已经显示了产品的标题,说明,价格,股票等,并与产品属性卡起来。在数据库中,_PRODUCT_Attributes以序列化的方式存储在数据库中的wp_postmeta表中。我也无法从中挖掘出属性。但是我发现,每个具有自己价格的属性值都存储在其他post_id中的wp_postmeta中。 例如,post_id=55的产品具有属性名“siz

  • 我试图从Woocommerce的Wordpress网站上获取产品数据。我使用下面的代码获取特定类别产品的名称和缩略图。 这在获取“工具”类别中产品的名称和图像方面效果很好,但我想获取每个产品的权重。 产品重量在WordPress仪表板中设置为产品属性。 如何获取产品的这些数据?我似乎找不到访问这些的功能。

  • 我刚开始学习spring boot,正在使用一个H2数据库,我已经得到了大部分的工作,但我遇到了麻烦,试图提出一个稍微复杂的请求。我有两个表'user'和'purche',我想创建和结束点,返回包含给定用户ID的所有购买。如果我使用SQL联接或一些类似的查询,这似乎很简单,但我不知道如何实现。 我有一个用于用户和购买的存储库(CrudRepository),然后有一个用于从数据库获取相关数据的服务