java - 我可以使用 Mapstruct 创建 Java 对象/实体的 DeepCopy 吗?
问题描述
我有一个由多个子类(聚合)组成的 JPA 实体(但这个问题通常很有趣)。
我需要在数据库中创建一个与现有条目 90% 相同的新条目(一些业务价值,当然 ID 需要不同)。
因为我们需要 mapstruct 在实体和 TO 之间进行映射,所以我在想“mapstruct 可以为我做这件事吗?” 创建深层副本后,我可以简单地更新剩余字段并保留对象。
手动编写复制构造函数很容易出错(因为可能会忘记新添加的字段),非常感谢生成器方法。
解决方案
是的,您可以使用@DeepClone
:
此 Javadoc 包含一个示例: https ://mapstruct.org/documentation/dev/api/org/mapstruct/control/MappingControl.html
@Mapper(mappingControl = DeepClone.class)
public interface CloningMapper {
CloningMapper INSTANCE = Mappers.getMapper( CloningMapper.class );
MyDTO clone(MyDTO in);
}
推荐阅读
- python - 将列添加到 python numpy 数组
- regex - facelet 中的正则表达式模式不起作用
- angular-material - 使用 MatPaginator 时无法读取 null 的属性“长度”
- python-imaging-library - 如何将屏幕用作暗流的视频输入
- wordpress - WordPress分页的第7页重定向回首页
- sql - 连接两个表并添加另一列 SQL
- html - 想要在 AngularJS 中的标签上显示错误消息
- neo4j - 在具有多个 MERGE 的 neo4j 中求和 2 个图
- javascript - ReactJS 异步全局 API 请求方法,如何处理响应?
- django - 基本 Django 身份验证错误