Spring ModelMapper 错误:控制器的映射已存在

2024-04-12

我通过 DTO 从表单获取数据并将其映射到我的 Hibernate 实体。我想跳过日期字段,因为传入的数据都是字符串,我需要将字符串字段与其他字段分开转换为日期。其余字段将直接从传入的 DTO 映射。该过程对于第一个请求运行良好,但在后续请求中,会引发以下异常:

     1) A mapping already exists for com.ibm.calypso.entity.WmCompIdfn.setEffStartDate().

1 error
    at org.modelmapper.internal.Errors.toConfigurationException(Errors.java:250)
    at org.modelmapper.internal.TypeMapImpl.addMappings(TypeMapImpl.java:76)
    at org.modelmapper.internal.TypeMapStore.getOrCreate(TypeMapStore.java:110)
    at org.modelmapper.ModelMapper.addMappings(ModelMapper.java:93)
    at com.ibm.calypso.service.CompanyServiceImpl.updateIdentificationIdfn(CompanyServiceImpl.java:48)
    at com.ibm.calypso.controller.CompanyController.updateIdentificationIdfn(CompanyController.java:76)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:806)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:729)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:883)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:651)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at com.ibm.calypso.filter.CORSFilter.doFilterInternal(CORSFilter.java:29)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2500)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2489)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

该错误已经被提出,但似乎没有人对此做出回应。

https://github.com/jhalterman/modelmapper/issues/103 https://github.com/jhalterman/modelmapper/issues/103

我的代码结构与链接中的类似。


我不确定您是否已经找到了解决方案。但我做了一个解决办法来解决这个问题。 我在我的服务方法中执行 modelMapper.addMappings(myPropertymap) 。因此它尝试为每个传入请求添加映射。我添加了以下检查以确保它仅在映射尚不存在时添加

// Before
modelMapper.addMappings(myPropertyMap);


// After
TypeMap<Source, Dest> typeMap = modelMapper.getTypeMap(Source.class, Dest.class);
if (typeMap == null) { // if not  already added
   modelMapper.addMappings(myPropertyMap);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring ModelMapper 错误:控制器的映射已存在 的相关文章

随机推荐

  • 具有两个参数的自定义 Liquid 标签

    如何编写 调用带有两个参数的自定义 Liquid 标签 上下文 Jekyll 2 1 1 我有一些页面作为选项卡集呈现 我的页面前部允许为某些页面定义额外的选项卡 如下所示 blah blah extra tabs A page a pag
  • 我可以使用JS序列化当前的DOM吗?

    我想使用 javascript 将 DOM 树的当前状态序列化为字符串 虽然我更喜欢 html 但结果格式并不重要 是否有捷径可寻 作为记录 我想使用 PhantomJs 自动下载页面 使用 js 脚本操作它 并保存页面的当前状态 但不是图
  • 减去 r 中的时间

    我有一个包含两个时间变量的数据集 EndVisitTime and BoxTime 我每天都会制作数据集 因此这些观察结果都是在一天内进行的 Date lt 2014 8 12 EndVisitTime lt c 00 00 32 00 0
  • Pandas:如果字符串存在于几列中的任何一列中,我想对计数进行求和,并将该计数添加到具有搜索术语的另一个数据框中

    我有一个视频数据框 其中包含几列标签 字符串 如下所示 import pandas as pd videos 1 cool video drama horror 2 great video sports drama 3 super vide
  • Flutter - 如何下载视频并将其保存到内部存储?

    我正在 flutter 中开发一个项目 我需要实现从服务器下载视频功能 我正在考虑使用 Dio 库并将下载的视频保存到getApplicationDocumentsDirectory 但我还没有找到我想要实现的目标的示例 我尝试了一些示例并
  • 什么是守护进程?它们的实际用途是什么?与php一起使用?

    有人能用两个词解释一下什么是守护进程以及它们在 php 中的用途吗 我 知道这是一个进程 一直在运行 但我不明白它在 php 应用程序中有什么用 有人可以给出使用示例吗 我可以使用守护进程来减少应用程序的内存使用量吗 据我了解 守护进程可以
  • 在 Scala 中模拟可变参数模板

    假设你想要类似的东西可变参数模板 http en wikipedia org wiki Variadic Templates 为泛型类定义 n 个类型参数的能力 在 Scala 中 例如你不想定义Tuple2 T1 T2 and Tuple
  • jQuery 可排序/禁用选择问题

    我的 jQuery 可排序列表出现问题 其中文本被选中 我发现了这个功能disableSelection 但似乎无法让它发挥作用 这是js ul current projects sortable placeholder drop zone
  • 如何在 Asp.net C# 中使用 LDAP 在 Active Directory 中搜索用户

    如何在 asp net c 中从 Active Directory 服务器获取所有记录 在中创建连接字符串LDAP提供username and Password可以与服务器通信并具有管理员权限 假设直流电是me com and userna
  • 当c#程序崩溃时如何知道原因?

    我的程序经常因某种原因崩溃 在这种情况下 我确实看到带有 关闭 按钮的 Windows 消息 每次发生这样的事情我都非常想知道到底发生了什么 感谢社区 我已经知道如何 处理 某些情况 我在程序的开头添加了这样的代码 static void
  • 在简单的 CSS 工具提示上淡入和淡出

    新手问题 尝试制作一个简单的 css 工具提示来淡入和淡出 但无法使其工作 搜索了很多但找不到简单的答案 我假设我把过渡 css3 放在错误的地方 但它在其他地方也不起作用
  • 具有动态名称的 Django 模型字段

    我想通过一种常见的 mixin 或抽象模型向现有模型添加新的 CharFields 但这些字段的名称取决于配置 因此 一个模型将具有 someprefix1 title 字段 而另一个模型将具有 someprefix2 title 字段 是
  • 检查 Spark 中矩阵每列中唯一值的数量

    我有一个 csv 文件当前存储为 Spark 中的数据框 scala gt df res11 org apache spark sql DataFrame 2013 03 25 12 49 36 000 string OES PSI603
  • iOS 8 - 切换控件后,即使在纵向模式下,旋转也会使状态栏消失

    我在 iOS 8 中新的状态栏自动隐藏功能中遇到了很多麻烦 在我的应用程序中 我有一个视图 当用户点击一次时 导航栏和状态栏就会消失 在横向时 状态栏会自行隐藏 这对我来说很好 我只需要在纵向模式下使用它 但问题是 当设备处于横向状态并显示
  • 当 Gmail 以编程方式用作 POP3 服务器时,它会表现出哪些非标准行为特征?

    我正在尝试准备一份完整的 Gmail POP3 行为列表 您通常不会期望在 POP3 服务器中找到这些行为 例如 Gmail 似乎会忽略来自 POP3 客户端的 DELE 删除 命令 相反 它实施自己的删除和归档策略 准备列表的目的是避免开
  • 在 C 中将二叉树转换为数组(并随后保存)

    所以 我正在做这个客户应用程序 您可以在其中创建 修改 搜索 列出客户 后来 这扩展到通过订单等方式将客户与产品联系起来 但我现在的重点只是客户 我已经创建了一个二叉树 所有这些功能都可以工作 但是我需要一种方法来存储创建的客户以供下次使用
  • 使用 Apache POI 更新 excel 文件

    我正在尝试使用 Apache POI 更新现有的 Excel 文件 每次运行代码时 我都会收到如下所示的错误 我也尝试过 FileInputStreamNewFile 的东西 Exception in thread main java la
  • strdup() 函数

    我最近意识到strdup 我在 OS X 上经常使用的函数不是 ANSI C 的一部分 而是 POSIX 的一部分 我不想重写所有代码 所以我想我会编写自己的代码strdup 功能 其实这并不难 只是一个malloc and a strcp
  • 如何在 iTunes connect 中本地化阿拉伯语应用程序?

    我正在尝试为我的应用程序使用阿拉伯语描述和元数据 在 iTunes connect 中 它规定这些数据必须是英语或任何其他语言 所以我确实将它们设置为英语 我的应用程序 故事板和内容 的开发是用阿拉伯语进行的 所以当我去 iTunes 连接
  • Spring ModelMapper 错误:控制器的映射已存在

    我通过 DTO 从表单获取数据并将其映射到我的 Hibernate 实体 我想跳过日期字段 因为传入的数据都是字符串 我需要将字符串字段与其他字段分开转换为日期 其余字段将直接从传入的 DTO 映射 该过程对于第一个请求运行良好 但在后续请