【发布时间】:2013-09-11 01:59:13
【问题描述】:
我正在使用@Version 注释在休眠中提供版本控制。我的问题是关于从 DTO 到实体的数据的正确映射。 我觉得正确的方法如下,但我想知道是否有更好的方法或者每个人都是这样做的。
- 来电为我服务
- 我加载要更新的实体(假设 AddressEntity 版本 = 1)
- 我将 AddressDTO 值映射到 AE,包括子集合(如果有)
- 全部映射后,我分离实体 AE(仅在映射惰性子集合后分离)
- 现在我将版本从 DTO 映射到 AE(因为休眠不允许更新托管实体中的版本)
- 现在我调用 merge 来更新这个分离的 AE 实体
1) 这是正确的语义和逻辑方式吗?
2)(有点脱离上下文)休眠是否存在合并已经在上下文中和托管的对象的开销,即我可以安全地对所有更新使用合并,无论是托管/非托管还是仅合并+刷新用于非托管和刷新更新一些属性后管理?
【问题讨论】: