2016-06-20 8 views
0

Ich erhalte Daten von meinem Formular über ein DTO und ordnet es meiner Hibernate-Entität zu. Ich wollte ein Datumsfeld überspringen, da die eingehenden Daten alle Zeichenfolgen sind und ich das Zeichenfolgenfeld in ein Datum getrennt von anderen Feldern konvertieren muss. Die restlichen Felder sind direkt vom eingehenden DTO abzubilden. Das Verfahren funktioniert gut für die erste Anfrage, aber bei nachfolgenden Anforderungen wird die folgende Ausnahme ausgelöst:Spring ModelMapper-Fehler: Mapping ist bereits für Controller vorhanden

 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) 

Der Fehler bereits angehoben worden war, aber niemand scheint es zu haben reagiert.

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

Meine Code-Struktur ist mit dem in der Verbindung ähnlich.

Antwort

3

Ich bin mir nicht sicher, ob Sie bereits eine Lösung gefunden haben. Aber ich habe eine Arbeit gemacht, um dieses Problem zu überwinden. Ich habe ModelMapper.addMappings (myPropertymap) in meiner Service-Methode gemacht. Daher versucht es, Zuordnungen für jede eingehende Anfrage hinzuzufügen. Ich fügte die folgende Überprüfung hinzu, um sicherzustellen, dass es nur hinzugefügt wird, wenn das Mapping nicht bereits existiert

+0

Danke für die Antwort, Rakesh. Aber dieses Problem ist für mich jetzt nicht mehr relevant. – abhishek

Verwandte Themen