当前位置: 首页 > 知识库问答 >
问题:

如何使用Mapstruct在方法之间共享实例

乌鸿宝
2023-03-14

我需要将xml转换为jpa实体。我已经使用jaxb获取了我的DTO,并使用mapstruct将dto转换为实体。但是,我需要从数据中提取一些数据,并将其设置为实体上的列表。我的映射器如下所示

Particulier toEntity(TParticulier particulier);
List<AttributMeta> toEntity(List<TAttributMeta> attributMetas);
default String extractMetaData(TAttributGufIdWithMeta value) {
List<TAttributMeta> attributMetas=value.getAttributMeta();   
???particulier.addAttributMetas(toEntity(attributMetas));??
return value.getValue().getGufid();
} 

我不知道如何在提取MetaData方法中访问我的实体特别。

共有1个答案

徐瀚
2023-03-14

为了进行此类映射,您需要将@MappingTarget@BeforeMapping/ mapping结合使用。有关更多信息,请参阅参考文档。<>

简而言之,您需要映射器或使用的引用来使用类似以下方法:

@AfterMapping // It can also be @BeforeMapping
public void afterMapping(TParticulier source, @MappingTarget Particulier target) {
    //do what you need here
}
 类似资料:
  • 问题内容: 我在JVM(Scala)中构建了一个庞大的图形,我想反复使用它来调整算法。我不想每次都从磁盘重新加载它。有没有办法让它坐在一个JVM中,而又与另一个正在开发算法的JVM连接呢? 问题答案: 将图形保存到磁盘,然后使用MappedByteBuffer将其映射到内存。两个进程应使用相同的内存,该内存将与页面缓存共享。

  • 我要的是这种行为: 当然,当我打印时真正发生的是: 显然,它们在类中共享数据。我如何获得单独的实例来实现我想要的行为?

  • 我正在为Minecraft创建一个插口插件,允许玩家使用某个命令追捕另一个玩家。 从现在开始,所有的变量都在类的顶部声明,这样它们就可以从onCommand方法中访问。但是,如果我这样做,插件将只适用于一个玩家,因为每个人的变量都是一样的,并且被每个使用命令的人覆盖(例如,所有玩家都将在命令上有一个冷却计时器,因为第一个玩家使用它)。我希望所有的变量都在onCommand方法中声明,这样变量的值对

  • 问题内容: 我想要的是这种行为: 当然,当我打印时真正发生的是: 显然,他们在课堂上共享数据a。如何获得单独的实例以实现所需的行为? 问题答案: 在类声明中声明变量会使它们成为”class”成员,而不是实例成员。在方法中声明它们可以确保在对象的每个新实例旁边创建一个新的成员实例。

  • 问题内容: 我想在一个应用程序和一个使用的应用程序之间共享服务器会话。我从这个要点中提取了大部分代码。 NodeJs代码: 它输出: PHP代码(我使用redis-session-php和Predis): 它输出: 问题: 我希望两个会话看起来都一样,但是却不一样(应用程序在同一域上运行)。使用from 作品设置值(但这些值不会在会话变量上)。我使用和找到了我认为可以工作的代码,但我认为这会使代码

  • 问题内容: 我正在评估Kubernetes作为我们新应用程序的平台。现在,一切看起来都非常令人兴奋!但是,我遇到了一个问题:我将群集托管在GCE上,并且需要某种机制在两个Pod之间共享存储(连续集成服务器和应用程序服务器)。用kubernetes做到这一点的最佳方法是什么?这些卷类型似乎都不符合我的需求,因为如果一个Pod需要写入GCE磁盘,则无法共享。NFS是完美的,但似乎需要为kubernet