Mar*_*itt 66 java orm hibernate jpa lazy-loading
在ORM/Lazy加载实体的上下文中,我对术语"水合"的理解如下:
"Hydrating"描述了填充使用延迟加载获取的实体的一些或所有先前未填充的属性的过程.
例如:Author从数据库加载类:
@Entity
class Author
{
@Id
long id;
List<Book> books;
}
Run Code Online (Sandbox Code Playgroud)
最初,books未填充集合.
据我所知,books从数据库加载集合的过程称为"保湿"集合.
这个定义是否正确,并且是常见的术语?我应该在这个过程中使用另一个更常见的术语吗?
oco*_*odo 117
水合物开始作为从db填充实例化(但是空的)值对象/模型的术语(特别是在Hibernate中).
各种其他ORM和工具,如BizTalk使用Hydrate和其他相关术语,(例如,BizTalk使用术语Dehydrated表示实例可用但尚未填充.)
就个人而言,我不喜欢冗余的术语检修,填充意味着同样的事情,没有重新发明语言.它没有增加任何东西并导致混乱(在遇到重新发明的术语时常见的第一个想法:这在某种程度上是不同的和神奇的吗?).
这种语言风格的BizTalk扩展,特别是Dehydrated是多余的.我希望人们没有忘记怎么说,空洞或清楚?
水合及其相关隐喻本质上是营销工具,旨在将Hibernate与竞争产品区分开来.
此时,Hibernate和其他ORM产品已使用这些术语多年,因此Hydrate(和Dehydrate)仍然存在.
在Hibernate命名法中,水合是指将JDBC ResultSet转换为原始值数组时:
final Object[] values = persister.hydrate(
rs, id, object,
rootPersister, cols, eagerPropertyFetch, session
);
Run Code Online (Sandbox Code Playgroud)
水合状态作为EntityEntry对象保存在当前运行的持久性上下文中,该对象封装了加载时实体快照.然后使用水合状态:
反向操作称为脱水,它将实体状态复制到SQL INSERT或UPDATE语句中.
| 归档时间: |
|
| 查看次数: |
24379 次 |
| 最近记录: |